Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2010, 14:09
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

сценарий замедляет работу IE
есть скрипт, в FF и Opera работает, а в IE вылетает
A script on this page is causing Internet Explorer to run slowly и.т.д.

понимаю, телепаты в отпуске, но не кажется, есть целый "класс" таких скриптов, которые нормально работают в FF, но глючат в IE,
определенно, что-то одно их должно объединять.

возможно, кто-то встречался с такой проблемой?
скорее всего в таких скриптах дело в циклах?
Ответить с цитированием
  #2 (permalink)  
Старый 15.03.2010, 15:13
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

скорее всего дело в руках...
да, и телепаты действительно в отпуске
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2010, 15:15
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Да, в принципе, ничего необычного. jQuery замедляет работу IE, а IE заменяет работу jQuery.
Ответить с цитированием
  #4 (permalink)  
Старый 15.03.2010, 15:33
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

subzey, то же самое можно сказать и о Javascript в целом, относительно ИЕ.
Вообще неожиданные циклы могут появлятся из-за "лавинообразного" наступления событий: в частности, с чем-то подобным я сталкивался при использовании jQuery.resize биндов в ИЕ.
Ответить с цитированием
  #5 (permalink)  
Старый 15.03.2010, 15:44
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

да там у меня просто много много option в select, каждый обрабатывается с jquery, если их мало, то тормозов нет, похоже дело в этом
Ответить с цитированием
  #6 (permalink)  
Старый 15.03.2010, 15:48
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Shaci, приведите рабочий фрагмент кода, который работает медленно.
Ответить с цитированием
  #7 (permalink)  
Старый 15.03.2010, 16:05
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Есть у нас один скриптик (запускается только в Firefox), который пробегается по DOM-дереву всяких разных страничек и сохраняет всякие параметры каждого узла. Так вот, попалась страничка, на которой было порядка 3000 option'ов. На такой страничке скрипт выполнялся около 2-х минут (тут нет опечатки). К слову 3000 любых других элементов обрабатываются доли секунды.

Мораль ищите сами. Я в скрипте тупо исключил обработку options, они мне не важны.

Пользователю, кстати, много option'ов тоже не нужны.
Ответить с цитированием
  #8 (permalink)  
Старый 15.03.2010, 16:32
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

e1f,
Reflow — вообще, штука опасная в плане производительности.

Kolyaj,
спасибо, пока с подобным не сталкивался, но при случае буду готов.
Ответить с цитированием
  #9 (permalink)  
Старый 15.03.2010, 16:38
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Если вкратце, есть плагин, он небольшой:
http://plugins.jquery.com/project/De...SelectbySilVeR
зависимых селектов, в котором зависимость одного селекта от другого указывается на основе tilte родителя, и class зависимого селекта.
В зависимости от того, что кидается ему внутрь, может работать в двух режимах.Когда несколько селектов зависят от одного, и когда зависимость по цепочке.

Я переделал его так, чтобы зависимость была не на основе title и class, а на основе value "опшионов", но это не важно.
Так вот. там есть ф-ция (практически не менял ее):
function _createHolder($holder, $holder_cls, $child, $child_id, $child_cls){		
		var $is_created = $($holder_cls+' '+$child_id).size();                
		if( $is_created == 0 ){
			$('body').append('\n\n<select class="'+$holder+' '+$child_id+'" style="display:none">\n</select>\n');
		}        
		$($child).find('option:not(:first)').each(function(){         
			$value = $(this).attr('value');
			$class = $(this).attr('class');
			$title = $(this).attr('title');
			$text  = $(this).text();
			$($holder_cls+$child_cls).append('<option    value="'+$value+'" class="'+$class+'" title="'+$title+'">'+$text+'</option>\n');
		});
            //$child - зависимый селект
            // $($holder_cls+$child_cls) - его скрытый

которая создает для каждого зависимого селекта скрытый селект (селект-хранилище),
в который складываются все option зависимого селекта, потом, по выбору определенных option из родительского селекта к зависимому из его скрытого добавляются соответствующие option.
Так вот: эта строчка
$($holder_cls+$child_cls).append('<option value="'+$value+'" class="'+$class+'"title="'+$title+'">'+$text+'</option>\n');

приводит к тому, что IE виснет, если в зависимом select много много option будет, видимо потому, что создается целая куча элементов option.
Ответить с цитированием
  #10 (permalink)  
Старый 15.03.2010, 16:48
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Возможно, стоит переписать не скучей аппендов, а с использованием DocumentFragment
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать, завершила ли свою работу рекурсивная функция Ajax Общие вопросы Javascript 4 13.05.2009 14:50
Java разработчик ищет удаленную работу. javaprogrammer Работа 0 22.12.2008 13:17
!doctype влияет на работу яваскрипт?! Sha Общие вопросы Javascript 3 21.09.2008 21:37