2009-06-16 13 views
3

私は、Webサービスからの大きなXML応答を処理しています。 URLを使用して取得しようとすると、しばらくするとFirebugに「スクリプトスタックスペースの割り当てが使い果たされている」というエラーが表示されます。 どうすれば解決できますか?スクリプトスタックスペースが枯渇firefox

答えて

4

のように、何らかの再帰があり、xmlを処理しているときにスタックオーバーフロー(任意の名前で)が発生しているようです。

思考:以下データ

    • 作業を手動でデータを処理している場合は、以下再帰を使用しようか?おそらくマニュアル末尾呼び出しまたはキュー/スタック
    • ベースのJSONを検討 - あなたは余分な処理
  • 1

    せずに、オブジェクトを再水和するために、スクリプトホストにオフロードすることができますが、あなたはFirebugのを無効にすることを試みたことがありますか?

    +0

    これは良いアイデアです、問題がFirefox自体にあることを確認するだけです – annakata

    +0

    それはFirefox自体で – Andromeda

    1

    私は同様の問題、多分同じでした。 これは、jQuery $(html)を使用して巨大なHTMLの断片を解析しようとすると発生します。

    私のテストでは、これはWindowsのFirefox 3.6.16でのみ発生しました。 Ubuntu上のFirefox 4.0.1の方がはるかに優れていました。おそらく、OSとは何の関係も、4.xでちょうどスクリプトエンジンがはるかに優れていません。..

    ソリューション: 代わりの

    var $divRoot = $(html); 
    

    私は

    var $temp = $('<div style="display:none;">'); // .appendTo($('body')); // (*) 
    $temp.html(html); // using the client's html parsing 
    var $divRoot = $('> div', $temp); // or .children() or whatever 
    // $temp.remove(); // (*) 
    

    (*)をやった jqueryがセレクタを適用する前に、本体に一時ノードを追加する必要があることを覚えています。しかし、この場合、それはそれなしでうまくいくように見えました。

    FF 4.xには全く違いはありませんでしたが、FF 3.xではスタックスペースのオーバーフローエラーを避けることができました。

    +0

    +1ありがとうございます - あなたの答えは私のための修正に私を導いた。 –

    関連する問題