Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 09.10.2007, 17:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 20  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от chingachgoog
Это почемуже он не переваривает текстовые ноды?
Он не только их переваривает, но и позволяет обратиться к следующим за текстовым нодом узлом, а в примере с while все следующее он уже не увидит.
Полный код, пожалуйста.

Потому как я не понял, как решится проблема с nodeValue:


Код:
var str = "<block><item>1</item><item>2</item><item>3</item></block>";
var xml = new XML();
xml.ignoreWhite = true;
xml.parseXML(str);

var node = xml.firstChild.firstChild;
while (node) {
	trace("значение: "+node.firstChild.nodeValue);
	node = node.nextSibling;
}

for (i=0; i<xml.firstChild.childNodes.length; i++) {
	node = xml.firstChild.childNodes[i];
	trace(node.firstChild.nodeValue);
}
А вот заодно тест:

Код:
var str = "<block><item>1</item><item>2</item><item>3</item></block>";
var xml = new XML();
xml.ignoreWhite = true;
xml.parseXML(str);
t = getTimer();
for (j=0; j<100000; j++) {
	node = xml.firstChild.firstChild;
	while (node) {
		node = node.nextSibling;
	}
}
trace(getTimer()-t); // 1028
t = getTimer();
for (j=0; j<100000; j++) {
	n = xml.firstChild.childNodes;
	l = n.length;
	for (i=0; i<l; i++) {
		node = n[i];
	}
}
trace(getTimer()-t); // 1689
Даже со всеми оптимизациями обычный перебор через for медленее в полтора с лишним раза.


Последний раз редактировалось etc; 09.10.2007 в 18:02.
Создать новую тему   Часовой пояс GMT +4, время: 21:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.