Frage

ich mit einer großen XML-Antwort von einem Webdienst arbeite. Wenn ich zu bekommen versuchen, dass eine URL verwenden, nach einiger Zeit zeigt es einen Fehler in Firebug, dass „Skript Stapelspeicher Kontingent erschöpft ist“ Wie kann ich das Problem beheben?

War es hilfreich?

Lösung

Es Sounds wie es einig Rekursion los, wenn die XML-Verarbeitung, das im Wesentlichen einen Stapelüberlauf verursacht (von einem beliebigen Namen).

Gedanken:

  • Arbeit mit weniger Daten
  • , wenn Sie die Daten manuell bearbeiten, versuchen, weniger Rekursion zu benutzen? vielleicht manuelle Tail-Call oder Warteschlange / Stack basiert
  • json betrachten - dann können Sie das Skript Host-Offload, um das Objekt ohne zusätzliche Bearbeitung rehydrieren

Andere Tipps

Haben Sie versucht, das Deaktivieren von Firebug?

Wie Firefox 3 hat der verfügbare Stapelspeicher von 4 MB bis ~ = 640KB fällt (ich vorbei auf Mundpropaganda hier).

Sie zufällig FF3 zu laufen?

https://bugzilla.mozilla.org/show_bug.cgi?id=420874

Ich hatte ein ähnliches Problem, vielleicht das gleiche. Dies kann passieren, wenn Sie versuchen, ein großes Stück von HTML mit jQuery $ (html) zu analysieren.

In meinen Tests dies geschah nur auf Firefox 3.6.16 unter Windows. Firefox 4.0.1 auf Ubuntu verhielt sich viel besser. Wahrscheinlich nichts mit dem Betriebssystem zu tun, nur das Script-Engine in 4.x ist viel besser ..

Lösung: Statt

var $divRoot = $(html);

Ich habe

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();  // (*)

(*) Ich erinnere mich, dass Sie in einigen Fällen müssen die temporären Knoten an den Körper an, bevor jquery alle Selektoren anwenden kann. In diesem Fall jedoch schien es, ohne dass nur gut zu funktionieren.

Es gab absolut keinen Unterschied auf FF 4.x, aber es erlaubte die Stapelspeicher-Überlauffehler auf FF 3.x zu vermeiden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top