Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> тормоза в IE при большом объёме в переменных, подстановка текста через html переменным 
:(
    Опции темы
Sinneren
Дата 2.12.2010, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


{YaGoo}
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.3.2009
Где: Уфа

Репутация: нет
Всего: 1



Имеется html файл, в котором три блока. При наведении на меню в 1 блоке, изменяется css второго блока и добавляется туда 2 меню. При наведении на меню 2 блока, добавляется содержимое 3 блока через html подстановкой текста из переменных. 

Весь скрипт расположен в:
Код

$(document).ready(function(){});


Внутри описаны переменные, работаю со старой версией, макетной, поэтому извините за ненаглядность. на серваке уже переделанный шаблон и переменные заполнены увесистым текстом(600 символов в среднем).
Код

    var txta11 = "<h1>111</h1><p><br>Одним из самых популярных материалов на сегодняшний день</p>";
    var txta12 = "<h1>Текст</h1>";
    var txta13 = "<h1>Текст333</h1>";
    var txta21 = "<h1>222111</h1>";
    var txta22 = "<h1>222222</h1>";
    var txta23 = "<h1>222333</h1>";
    var txta31 = "<h1>333111</h1>";
    var txta32 = "<h1>333222</h1>";
    var txta33 = "<h1>333333</h1>";


Тут пример события при наведении на ссылку 1 блока.в нём задаю безымянную функцию, в которой подставляю данные во второй блок и инициализирую функции для 3 блока. Далее под #inform и #risunok подразумеваются DIV'ы.
Код

    $("#a1").hover(
    function(){
        $("#risunok").html("<img src='img/slash.png'>"+
        "<ul class='second_menu'><li><a href=# id=\"a11\">Металлочерепица</a></li>"+
        "<li><a href=# id=\"a12\">Профнастил кровельный</a></li>"+
        "<li><a href=# id=\"a13\">Фальцевая кровля</a></li>"+
        "</ul>");
        hovera11();
        hovera12();
        hovera13();
    });


А теперь описываю эти функции для 3 блока
Код

    function hovera11(){
        $("#a11").hover(function(){
            $("#inform").html(txta11);
        });
    }
    function hovera12(){
        $("#a12").hover(function(){
            $("#inform").html(txta12);
        });
    }
    function hovera13(){
        $("#a13").hover(function(){
            $("#inform").html(txta13);
        });
    }


в первом блоке 3 ссылки. во 2 от 3 - 10. и количество вложений соответственно возрастает + как я уже писал выше увесистые переменные. 
пробовал,конечно, делать одной функцие для 3 блока через обращение $(".second_menu a") и подстановкой в переменную ID this.attr("id"), но работать это не захотело. вообще если хоть одну функцию для 3 блока убрать, то не работает. 
пробывал загружать из текстового файла-та же беда, не работает.

меня и этот громоздкий устраивает,но в чёртовом IE жутко тормозит. как решить проблему?

Это сообщение отредактировал(а) Sinneren - 2.12.2010, 10:52
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 2.12.2010, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Цитата(Sinneren @  2.12.2010,  10:49 Найти цитируемый пост)
как решить проблему?

Подгружать блоки ajax-ом.
PM MAIL Skype   Вверх
Sinneren
Дата 3.12.2010, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


{YaGoo}
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.3.2009
Где: Уфа

Репутация: нет
Всего: 1



Да не похоже. не подгружает он их.
положил содержимое переменных в файлы. поставил имена файлов как ID ссылок. Добавил событие клика и прикрутил функцию.
Код

$("#a1").hover(
    function(){
        $("#a3,#a2").css("background","none");
        $("#a1").css("background","url(img/cursor.png) no-repeat 100% 0");
        $("#risunok").css("background","none");
        $("#risunok").html("<img src='img/slash.png'>"+
        "<ul class='second_menu'><li><a href=# id=\"a11\" onclick=\"ahover();\">Металлочерепица</a></li>"+
        "<li><a href=# id=\"a12\" onclick=\"ahover();\">Профнастил кровельный</a></li>"+
        "<li><a href=# id=\"a13\" onclick=\"ahover();\">Фальцевая кровля</a></li>"+
        "</ul>");
    
    });

Сама функция, которая грузит через JQuery.load. Вернее должна.но не грузит ничего. 
такие сложности с циклом и записи через docement....... потому что тупо даже в сплывающем списке не выходит ни attr, ни getAttribute, поэтому в функцию не отправить this и по ней не определить id вышеописанными способами.
Код

    function ahover(){
        for(i=0;i<=document.getElementsByTagName("a").length;i++){
            $("#inform").load('ajax/'+document.getElementsByTagName("a").item(i).getAttribute("id")+'.htm');
                }
        }


Добавлено через 8 минут и 17 секунд
Такой метод, без JQuery:
Код

function showContent(link) {  
   
         var cont = document.getElementById('inform');  
          
         var http = createRequestObject();  
         if( http )   
         {  
             http.open('get', link);  
             http.onreadystatechange = function ()   
             {  
                 if(http.readyState == 4)   
                 {  
                     cont.innerHTML = http.responseText;  
                 }  
             }  
             http.send(null);      
         }  
     }  
   
     // создание ajax объекта  
     function createRequestObject()   
     {  
         try { return new XMLHttpRequest() }  
         catch(e)   
         {  
             try { return new ActiveXObject('Msxml2.XMLHTTP') }  
             catch(e)   
             {  
                 try { return new ActiveXObject('Microsoft.XMLHTTP') }  
                 catch(e) { return null; }  
             }  
         }  
     }  


+

Код

    $("#a1").hover(
    function(){
        $("#a3,#a2").css("background","none");
        $("#a1").css("background","url(img/cursor.png) no-repeat 100% 0");
        $("#risunok").css("background","none");
        $("#risunok").html("<img src='img/slash.png'>"+
        "<ul class='second_menu'><li><a href=# id=\"a11\" onclick=\"showContent('ajax/a11.html')\">Металлочерепица</a></li>"+
        "<li><a href=# id=\"a12\" onclick=\"showContent('ajax/a12.html')\">Профнастил кровельный</a></li>"+
        "<li><a href=# id=\"a13\" onclick=\"showContent('ajax/a13.html')\">Фальцевая кровля</a></li>"+
        "</ul>");
    
    });


Не работает тоже.
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 3.12.2010, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Зачем для всех ссылок сразу грузить? Нужно только для выбраной, при наведении:
Код

<a href=# id=\"a12\" onclick=\"ahover('a12');\">Профнастил кровельный</a>

Код

function ahover(s){       
            $("#inform").load('ajax/'+s+'.htm');                
       




PM MAIL Skype   Вверх
Sinneren
Дата 3.12.2010, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


{YaGoo}
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.3.2009
Где: Уфа

Репутация: нет
Всего: 1



Всё равно не работает... не пойму где ошибся.
Прилепляю архив со всеми кишками. Если не трудно, гляньте, пожалуйста.


Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  BPSK.rar 337,84 Kb
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 3.12.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Цитата(Sinneren @  3.12.2010,  11:37 Найти цитируемый пост)
Прилепляю архив со всеми кишками

не могу скачать, вернее могу но не файл. залейте куда-то.
PM MAIL Skype   Вверх
Sinneren
Дата 3.12.2010, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


{YaGoo}
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.3.2009
Где: Уфа

Репутация: нет
Всего: 1



Цитата(CruorVult @ 3.12.2010,  11:56)
залейте куда-то.

http://zalil.ru/30070574
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 3.12.2010, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



метод ahover вынисите из $(document).ready и будет счастье smile 
PM MAIL Skype   Вверх
Sinneren
Дата 3.12.2010, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


{YaGoo}
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.3.2009
Где: Уфа

Репутация: нет
Всего: 1



Цитата(CruorVult @ 3.12.2010,  12:41)
метод ahover вынисите из $(document).ready и будет счастье smile

Странно. но по нулям. Всё также глухо. 
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 3.12.2010, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



какая ошибка? 
В опере через консоль ошибок можно посмотреть.

Добавлено @ 15:33
там вы еще кавычку пропустили
Код

$("#a1").hover(
    function(){
        $("#a3,#a2").css("background","none");
        $("#a1").css("background","url(img/cursor.png) no-repeat 100% 0");
        $("#risunok").css("background","none");
        $("#risunok").html("<img src='img/slash.png'>"+
        "<ul class='second_menu'><li><a href='#' id=\"a11\" onclick=\"ahover('a11');\">Металлочерепица</a></li>"+
        "<li><a href='#' id=\"a12\" onclick=\"ahover('a12');\">Профнастил кровельный</a></li>"+
        "<li><a href='#' id=\"a13\" onclick=\"ahover('a13');\">Фальцевая кровля</a></li>"+
        "</ul>");
    
    });


Это сообщение отредактировал(а) CruorVult - 3.12.2010, 15:33
PM MAIL Skype   Вверх
Sinneren
Дата 3.12.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


{YaGoo}
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.3.2009
Где: Уфа

Репутация: нет
Всего: 1



про кавычку знал исправил. 
не понос так золотуха.
оказывается работает в FF,Opera,IE. не работает в Хроме. 
на наличие тормозов еще тоже не проверял smile 
для JS <!--[if lt IE 7]><script type=text/javascript src=""></script> <![endif]-->  такой вариант прокатит, как исключение?

PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 3.12.2010, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Sinneren, говорю, посмотрите ошибку!
Опера->Инструменты->Дополнительно->Консоль ошибок.

PM MAIL Skype   Вверх
Sinneren
Дата 4.12.2010, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


{YaGoo}
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.3.2009
Где: Уфа

Репутация: нет
Всего: 1



ошибки только с css и не связаны с этим блоком. в скриптах ни одной ошибки не находит.
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 4.12.2010, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Тогда не знаю! Я только вынес ahover из $(document).ready и у меня всё заработало.

Добавлено через 1 минуту и 10 секунд
Может вы что-то в скрипте меняли перед этим. Попробуйте скачать то, что вылаживали и сделать то, что  я сказал.
PM MAIL Skype   Вверх
Sinneren
Дата 4.12.2010, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


{YaGoo}
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.3.2009
Где: Уфа

Репутация: нет
Всего: 1



именно так и сделал. у вас в хроме заработало? 
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0652 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.