"Dieses Skript nicht mehr ausführen?"

8

Ich entwickle eine Website, die JavaScript (jQuery) ausgiebig nutzt. Ich bekomme regelmäßig den IE "Hör auf, dieses Skript auszuführen?" Fehlerdialog wenn ich versuche den Browser zu schließen.

Ich vermute, dass das Problem auftritt, weil die Site eine einzelne Seite ist, die AJAX verwendet, so dass es keine Postbacks gibt, um IE die Anzahl der ausgeführten Befehle zurückzusetzen.

Client-seitiges Registry-Hacking ist keine Option.

Kennt jemand eine Möglichkeit, um diesen Fehler zu umgehen?

UPDATE: Die Seite hat eine Anzahl (~ 10) Intervall-Timer, die kontinuierlich in Intervallen von 30 oder 60 Sekunden abfragen.

    
liammclennan 17.11.2008, 22:42
quelle

8 Antworten

4

Ich habe mich auch diesem Problem gestellt und dieses Problem dadurch gelöst, dass ich die fortlaufende DOM-Ausführung geteilt habe. Für diesen Ansatz habe ich setTimeout function verwendet. Die Behebung dieses Problems hängt vollständig davon ab, wie Sie die fortlaufende Ausführung teilen.

    
Narsi 12.02.2010 11:27
quelle
3

Verwenden Sie zufällig einen window.onunload-Handler? Wenn Sie dies tun, können Sie überprüfen, ob Sie dort eine Endlosschleife haben.

Um zu überprüfen, am Ende Ihres Javascript tun:

%Vor%

und erneut testen.

    
Eric Wendelin 17.11.2008 22:54
quelle
2

Problem: "Dieses Skript nicht mehr ausführen?" Fehler

Lösung: Sie können dies ein Kompatibilitätsproblem oder ein Fehler sagen, da das gleiche Zeug ohne Fehler in Mozilla läuft, aber es läuft in IE 6,7 oder 8 mit einer Fehlermeldung "Stop running this script". Microsoft hat einen Patch zur Verfügung gestellt, um dieses Problem in IE zu beheben. Also, bitte gehen Sie auf den folgenden Link und laden Sie die "Microsoft Fix It" und installieren Sie die gleichen und starten Sie den Browser neu und Sie werden nie den Fehler "Stop running this Script" sehen: Ссылка

    
abhijeetKBehera 23.09.2011 05:20
quelle
1

Sie haben nur eine lange laufende Skript / Endlosschleife in Ihrem Code. Weitere Details erhalten möglicherweise eine genauere Antwort.

Wenn Ihre Seite viele Intervalle verwendet, sollten Sie sie vor dem Navigieren von der Seite abbrechen. Verwenden Sie window.onunload, um alle Intervalle zu löschen.

    
rfunduk 18.11.2008 02:09
quelle
1

Ich habe gerade darüber gebloggt und was ich denke, ist eine ziemlich stilvolle Lösung. Also schau es dir an. Wie oben erwähnt, bricht meine Lösung nur lang andauernde Operationen in Blöcke auf, aber ich biete dafür eine nette Hilfsklasse.

    
gatapia 04.03.2010 01:54
quelle
0

Denken Sie auch daran, die lange Operation in $ (document) .ready () und $ (window) .load ()

aufzuteilen     
ThiamTeck 21.01.2011 08:58
quelle
0

Ich hatte gerade ein Problem mit jquery-Selektoren, die zu allgemein waren: z. $("*")

    
ripper234 15.09.2011 07:49
quelle
0

Wie die Person, die $ ("*") erwähnt hat, versuchen Sie, $ (this) nicht als Bindungsselektor für benutzerdefinierte Ereignisse zu verwenden. Dies führte dazu, dass ein aktuelles Skript die Ladezeiten des Systems löschte.

>     
Destreyf 28.12.2012 00:17
quelle