![]() |
огромный XML и default timeout period of 15 seconds
Вот засада! У меня xml (не мой) имеет в себе 3564 item`ов, Загрузив всё это дело во flash, и попытавшись просто прогнать их в цикле:
Код:
for(var z:int=0;z<fondsXML.elements('*').length();z++){}Цитата:
|
эт такая защита флеша от повисания)
очевидно что твой цикл работает слишком долго. и немного смущает .length() понится это свойство а ни метод. хотя может я не прав |
дада, из-за length() вся проблема и возникла.
решилось так: Код:
var len=fondsXML.elements('*').length(); |
нитуттобыло. любой вызов методов в этом цикле вешает скрипт наглухо.
Даже такой: Код:
var len=fondsXML.elements('*').length(); |
а вы умеете работать с ХМЛ?
может проблема в этом? |
пока справлялся.
а ты умеешь? если да, то буду очень даже благодарен за любой адекватный совет. |
а с помощью for each не легче цикл по XML гонять? не надо придумывать дополнительных переменных типа len и z...
что-то типа того. Код:
for each (var map:XML in XML_data..map) |
все переменные определим заранее, для чистоты эксперимента.
Код:
var xml:XML = <xml><x /><x /><x /></xml>;* + list for each for each разница в пару миллисекунд на тысяче итераций, можно опустить. итог: тоесть, да, Вы не умеете работать с XML. |
tyapichu легче конечно. Я сюда запостил то что первое "подвернулось под голову".
BloodHound спасибо за то что откликнулся и даже потратил время, но прости я не понял что ты пытался объяснить? =) Ты гоняешь по огромному циклу вот этот XML? "<xml><x /><x /><x /></xml>" И пытаешься тучу раз его парсить? Конечно же результаты будут в милисекунды на любом способе. (1 в три раза дольше, да) Попробуй прочитать мой первый пост, и понять, что дело имеется с огромным массивом данных. ~200kb, с кучей вложений и так далее. Любое действие не в цикле с таким XML занимает некоторое время. Попробуй погоняй эти тесты на чём то действительно большом, и тогда быть может мы оба будем знать чуточку больше ;) P.s. Проблему я решил, разбив данные на части, всё работает достаточно быстро. |
что то мне не удалось предыдущий пост отредактировать. прошу прощения в нем был не прав!
Код:
var xml:XML = <xml>...их тут очень много около 4000<x/></xml>;тест показал на моей машине: 3890 elements + XML = 12573 Вывод:BloodHound вы не правы, человек умеет работать с хмл просто действительно машина подвисает на данной операции. |
| Часовой пояс GMT +4, время: 07:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.