IE6/7/8 Out-of-Memory?
Gab ich einige cross-browser-Tests auf bestimmte Stück von Funktionalität heute und stieß auf eine ziemlich raffinierte kleine gem.
Im IE8: Out of memory at line: 99
Im IE7: Out of memory at line: 100
In IE6: Stack overflow at line: 101
Aus, was ich schon immer in der Lage zu Graben, bis die meisten der Zeit, diese Nachrichten zu starten, die, es ist ein Problem mit ein array, in dem die Anzahl der Elemente größer ist als 65,535
. Allerdings glaube ich nicht, dass das die Frage auf der hand hier.
Die Funktionalität in Frage ist eine Aktion innerhalb einer iframe
"schließen" die aktuelle iframe
und "öffnen" dem anderen mit jQuery. Es passiert auf die schließen/öffnen-Interaktion.
Hat jemand etwas gesehen, wie dies vor?
Bearbeiten: Bei der weiteren Untersuchung, es hat nicht wirklich scheinen mit den iframes. Immer noch Graben, aber irgendwelche Vorschläge würden geschätzt.
InformationsquelleAutor der Frage Collin Klopfenstein | 2010-10-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
So stellte sich heraus, dass ein Problem mit dem IE und sonst alles, was handling, die Dinge anders...wie immer.
Habe ich eine Funktion, dass ich mit throw einen Fehler, und es ist rekursiv, die durch design. Ich wollte die Fehler angezeigt werden, die im Hauptdokument nicht in einem iframe (, die ausgiebig genutzt auf dieser Seite, leider). Der Kern der Funktion ist wie folgt:
Dies funktioniert in Chrome und Firefox. Es eine Rekursion eine Ebene und macht den Fehler-Anzeige im Hauptfenster, denn einmal wird Sie auf die oberste Ebene, das Mutterunternehmen selbst. Offenbar im IE, allerdings, window parent-NIE sich selbst. Also, eine unendliche Rekursion.
Bleiben Sie dran für eine Lösung.
Edit: Anscheinend war es ein Problem bei der Verwendung
!==
statt!=
. Wenn ich wechselte es zu!=
das zweite mal durch (diese wird von einemiframe
),window == parent
wahr, aberwindow === parent
nicht...Was auch immer, ich werde es nehmen...
Dank für Ihre Hilfe Jungs.
InformationsquelleAutor der Antwort Collin Klopfenstein
Es scheint, dass Sie zu viel Speicher ist mit etwas und IE hat nicht so viel Speicher für diese Art von etwas 🙂 Andere Browser tun. Wenn Sie einen Blick auf die Zeilennummern, die Sie haben, oder Debuggen Sie Ihren code mit IE8 developer tools solltest du deine Antwort.
Wenn es nicht eine Rekursion kann es eine Schleife, hält den Verzehr von mehr Speicher, bis es läuft.
InformationsquelleAutor der Antwort Boris Hamanov