![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Мыкыта
Таким кодом НЕ выдасть флеш те цифры, которые стоят между тегами - Вы проверяли хоть, согласно структуре автора? Ведьмак, автор решит, что ему ближе к сердцу ![]() А вообще да, перегнул палку. Последний раз редактировалось Molecula; 09.10.2007 в 17:10. |
|
|||||
|
Регистрация: Mar 2003
Адрес: Россия, Санкт-Петербург
Сообщений: 565
|
я всего лишь натолкнул на путь истинный, а не написал за автора то что ему надо... в первую очередь надо учится не код писать, а пользоваться справкой!
Последний раз редактировалось Мыкыта; 09.10.2007 в 17:54. |
|
|||||
|
|
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
А если узел текстовый? nodeType == 3
add К чему эти упражнения с while? В байткоде, что while, что for - одно и тоже выходит, а конструкция надежнее: Последний раз редактировалось chingachgoog; 09.10.2007 в 17:27. |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 53
|
Cпасибо, разобрался, очень помогли!
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не надежнее. Прожорливее при этом, причем в разы.
|
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Цитата:
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Нет, твой конкретный пример прожорливее и никоим образом текстовые ноды не переваривает.
Если пример с while лишь проверяет node на null и обращается по ссылке к следующему, то твой плюсует счетчик, обращается дважды к XMLmenu.firstChild.childNodes (это нефиговая такая процедура, надо заметить), обращается к ноду по индексу (тоже нефиговая процедура, вместо ссылочного обращения), и ещё высчитывает постоянно длину массива. А у Гурского написано про: и |
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Цитата:
Он не только их переваривает, но и позволяет обратиться к следующим за текстовым нодом узлом, а в примере с while все следующее он уже не увидит. Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Потому как я не понял, как решится проблема с 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
Последний раз редактировалось etc; 09.10.2007 в 18:02. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|