Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.07.2009, 05:48
Artem (krsk)
 
Сообщений: n/a

Скорость работы скрипта в IE
Есть такой скрипт:
<script language="JavaScript" type="text/JavaScript">
function listxml()
{
	var xmlDoc;
	if (window.ActiveXObject)
	{xmlDoc=new ActiveXObject("Microsoft.XMLDOM");}
	else if (document.implementation.createDocument)
	{xmlDoc=document.implementation.createDocument("","",null);}
	else
	{alert('Your browser cannot handle this script');}
	
	xmlDoc.async=false;
	xmlDoc.load("iss.xml");
	var f='';
	for (i=0; i<xmlDoc.getElementsByTagName("catalog").length; i++)
	{
		if (xmlDoc.getElementsByTagName("catalog")[i].getAttribute("name")=='атрибут')
		{f+=xmlDoc.getElementsByTagName("catalog")[i].getAttribute("name")+'<br />';}
	}
	document.getElementById("forxml").innerHTML=f;
}
</script>

в FF и Opera этот скрипт отрабатывает на раз (выводит список найденных узлов), а IE уходит в себя и больше не возвращается. Надо сказать что xml файл очень большой, более 2 мегабайт. Как-то можно скрипт модернизировать чтоб IE тоже работал, или надо принципиально по другому задачу решать?
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2009, 05:59
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

for (i=0; i<xmlDoc.getElementsByTagName("catalog").length; i++)
    {
        if (xmlDoc.getElementsByTagName("catalog")[i].getAttribute("name")=='атрибут')
        {f+=xmlDoc.getElementsByTagName("catalog")[i].getAttribute("name")+'<br />';}
    }


меняем на:


for (var catalogs = xmlDoc.getElementsByTagName("catalog"), i=0, length = catalogs.length; i<length; i++)
    {
        var nameAttr = catalogs[i].getAttribute("name");
        if (nameAttr=='атрибут') f+=nameAttr+'<br />';
    }
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2009, 07:07
Artem (krsk)
 
Сообщений: n/a

Да, действительно, слона -то я и не приметил Спасибо, так работает. Это действительно рациональней, хотя скорость обработки в сравнении с другими браузерами показательна, получился этакий тест
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2009, 20:02
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

вроде где-то недавно читал, что ie просто не кэширует поиск по DOM'у
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов скрипта в теле всплывающего окна на Javascript demchenko Я не знаю javascript 2 10.06.2009 10:46
как прекратить выполнение скрипта ? kefi Общие вопросы Javascript 3 31.03.2009 19:05
Исполнение PHP скрипта AJAXом KiTaeZa AJAX и COMET 1 19.12.2008 17:39
Проблема понимания работы скрипта Diogo Общие вопросы Javascript 0 08.11.2008 17:52
Модификация данных скрипта информера vasiliyb Общие вопросы Javascript 8 29.09.2008 21:24