2009-05-07 5 views
0

У меня очень большой XML-файл, который имеет как 40000 данных, а когда я пытаюсь загрузить XML с помощью ActionScript3, а затем заполнять данные в Array, , я получаю следующую ошибку :проектирование XML с большими наборами данных для ActionScript3

Сценарий выполнен дольше, чем период ожидания по умолчанию 15 секунд.

Есть ли способ обойти эту проблему с таймаутом? Вот пример XML

<Map> 
    <Data>0</Data> 
    <Data>1</Data> 
    <Data>2</Data> 
    <Data>3</Data> 
    // continue for many many times 
    <Data>39999</Data> 
</Map> 

Линия перерыв, кажется, на цикл. Код как этот

var aNumberArray:Array = new Array(200 * 200); 
var nRowIndex:int = 0; 
for (; 200 > nRowIndex; ++nRowIndex) { 
    var nColumnIndex:int = 0; 
    for (; 200 > nColumnIndex; ++nColumnIndex) { 
     var nIndex:int = nColumnIndex + nRowIndex * 200; 
     // assume cXMLMap is already a pre read XML class 
     aNumberArray[ nIndex ] = new int(cXMLMap.Data[ nIndex ]); 
    } 
} 

Я подозревающий, что cXMLMap.Data[ nIndex ] принимает много времени, чтобы получить переменные из XML. Пожалуйста, совет.

ответ

0

Я нашел ответ, мне нужно изменить формат XML, чтобы что-то вроде ниже

// given a data set of 200 X 200 fields 
<Map> 
    <Data>00 10 20 30 40 ..... 1990</Data> 
    <Data>00 11 21 31 41 ..... 1991</Data> 
    // repeat until reach 200 times 
    <Data>2000 2001 2002 2003 2004 ..... 199200</Data> 
</Map> 

Это уменьшит длительность XML разбора, однако, мне нужно написать код, чтобы разметить строку в ActionScript3.

+0

Помните, что вы никогда не должны захватывать на сервере неимоверно большие наборы данных, поскольку вы будете болеть как на своем сервере, так и на вашем клиенте. Если это возможно, лучше ограничьте ответ на стороне сервера (который поможет вам иммунизировать ваш сервер от DOS-атак), а затем напишите ваше приложение, чтобы захватить данные в кусках размером с укусом. НТН. – Wikiup

Смежные вопросы