![]() |
|
||||||||||
|
|||||
|
Здравствуйте. Столкнулся с проблемой загрузки больших XML-файлов (порядка 1мб и выше). Загрузка с локальной директории.
Как и следовало ожидать, флеш по истечении 15 секунд выдает модальное окно с запросом на разрешение продолжения выполнения скрипта. Решил разбить xml-файл на несколько (скажем, по 20 строк каждый). Гружу данные через loadVars, каждую новую партию присоединяю к строке (как вариант - concat), по завершении загрузки паршу в xml. В итоге, доступа к определенному узлу, атрибуту... отсутствует, ввиду, как я понял, неверной конечной структуры XML. Ранее, при загрузке через loadVars xml-данных использовал метод sendAndLoad и ресивером делал XML переменную, но, та м не было разбиения на строки. Вот примерный код, который использую сейчас.
var xml:String = " ";
var current:Number = 0;
function loadData(path:String) {
var my_lv:LoadVars = new LoadVars();
clearInterval(interval);
my_lv.onLoad = function(success:Boolean) {
trace(current+"-------------------");
if (success) {
current++;
xml+=this.toString();
if (current<=2) {
interval = setInterval(loadData, 2000, "multixml/"+current+".xml");
} else {
var level_xml:XML = new XML();
level_xml.ignoreWhite = true;
level_xml.parseXML(xml);
trace(level_xml);
}
} else {
trace("Error loading/parsing LoadVars.");
}
};
my_lv.load(path);
}
var interval:Number = setInterval(loadData, 2000, "multixml/0.xml");
Спасибо
__________________
freelancer Последний раз редактировалось Ventur; 11.09.2007 в 20:57. |
![]() |
Часовой пояс GMT +4, время: 13:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|