2009-05-07 13 views
0

私はActionscript3を使用してXMLをロードしようとすると、配列にデータを入力しようとすると非常に大きなXMLファイルを持っています 次のエラーが発生します:ActionScript3用の大きなデータセットを使用したXMLの設計

スクリプトがデフォルトのタイムアウト時間15秒を超えて実行されました。

このタイムアウトの問題を回避する方法はありますか? はここ

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

改行は、forループであると思われるサンプルXMLです。 コードは、この

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

私は、答えを見つけた私は

// 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構文解析時間を削減するようなものにXMLの形式を変更する必要が は、しかし、私は、内の文字列をトークン化するコードを記述する必要がありますactionscript3。

+0

サーバとクライアントの両方を駄目にするので、サーバーから大量のデータを取得することは絶対に避けてください。可能であれば、サーバ側のレスポンスを制限して(DOS攻撃からサーバを保護するのに役立つ)、アプリケーションを作成してデータを一口サイズのチャンクに集めるようにしてください。 HTH。 – Wikiup

関連する問題