Erkennung Ursache von IE-Vorgang Abgebrochen Problem
Meine Website leidet unter dem Vorgang Abgebrochen-Fehler. Was find ich komisch ist, dass in meinem Fall der Fehler nur manchmal passiert. Die Seite wurde problemlos ausgeführt, für drei Monate, heute beginnt es passiert aber nicht jedes mal.
Seite dies geschieht, ist ziemlich groß mit einer Menge der Steuerelemente von Drittanbietern. Was ich möchte ist ein tool, das könnte zeigen, wo die Fehler auftreten. Scheint, wie das beste, das ich tun kann, ist, finden die ersten javascript-Fehler, der Auftritt, nachdem die operation beendet; dies bedeutet jedoch nicht, viel helfen. Dieser Fehler tritt auf, weil ein element der dom ist nicht verfügbar, die ich erwarten würde, da der IE beendet das Parsen von HTML.
Jeder irgendwelche Ideen oder tricks zu engen diese nach unten?
Bearbeiten
Schätze ich, zusätzliche Möglichkeiten, um das Problem zu beheben; jedoch, was ich Suche, ist ein Weg, um zu identifizieren, welches Skript das Problem verursacht.
Endgültige Bearbeitung
Nach der Umstellung auf IE8, ich war in der Lage, um zu bestimmen, die Ursache war die AjaxControl Toolkit modal-popup-dialog. Es war kein konkreter Weg, dies zu bestimmen, die dissapointing, aber der debugger lassen Sie mich sehen, wo es war ein Fehlschlag, das war sehr stimmig. Da es keine Möglichkeit gibt in der Steuerung zu sagen, es bewegen der Initialisierung habe ich es deaktiviert, und das Skript zum erstellen der client-Seite die Kontrolle in meinem Dokument load-Ereignishandler.
Dieses Problem ist kein Fehler von der Steuerung, war es anspringt, weil die Inhalte für die popup ist eigentlich eine zweite form. Ehrlich gesagt, ich bin überrascht, dass es überhaupt funktionierte.
- IE javascript error reporting ist bekanntlich nutzlos. Bekommst du irgendwelche Fehler in Firefox?
- nope, nichts im firefox.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hast du irgendwelche javascript, das ist Manipulation der DOM, wie der Fall beschrieben ist, bei http://support.microsoft.com/kb/927917#more_information ?
Versuchen Sie, alle Skript-Blöcke am unteren Ende der Seite, kurz vor der
</body>
tag, und versuchen Sie nicht, legen Sie die innerHTML-Eigenschaft des body-Tags selbst.Wenn das problem mit javascript ausführen, bevor der DOM ist voll unterkellert, versuchen Sie, die Initialisierung Aufrufe in einer Funktion wird nur ausgeführt, nachdem die Seite vollständig geladen ist. Also, statt so etwas wie dieses:
Probieren Sie etwas wie dieses:
Können Sie Skript verwenden, vorausgesetzt, die von IE-Blog, um das problem zu untersuchen. Siehe: http://blogs.msdn.com/ie/archive/2009/09/03/preventing-operation-aborted-scenarios.aspx
Dies ist ein netter trick, die ich verwendet (basierend auf den link in der JS Kommentare unten), die vollständig vermeidet die Op Ab Fehler ohne Auswirkungen auf die Leistung in anderen Browsern. Sie ersten wrap welchem Skript du tust, das kann den Fehler verursachen (zum Beispiel, laden/instanziieren eines 3rd-party-widget) in eine Funktion und rufen Sie dann die Funktion innerhalb der
delayExecutionForIE
Funktion -- beachten Sie, dass der AufrufmyFunction
ist doppelt drin, einmal für den IE und einmal für den netten Browser.Ihre 3rd-party-Skript könnte verhindern, dass diese arbeiten, je nach genau das, was es tut, und wie er erwartet, dass Sie geladen werden, aber es ist definitiv einen Versuch Wert.
in den meisten Fällen ist es ein DOM-Problem in JS.
so, in Internet Explorer können Sie Inhalte hinzufügen, um ein Objekt nur, wenn Sie es schließen-tag
Beispielsweise der folgende code Ursache der IE7 zu bringen, wird die Meldung "Vorgang abgebrochen"
Auf die richtige Art und
Obwohl IE8 wird nicht länger verursachen, dass der Fehler "crash" das rendering komplett, stattdessen Protokollierung eines Fehlers ist es leider nicht erwischt, indem Sie den JavaScript-debugger in der neuen Entwickler-Tools und die Fehlermeldung nicht sagen, wo der Fehler wirklich aufgetreten ist.
Einen workaround, das ist sicherlich mühsam, aber könnte suchen die Frage, ist die Verwendung von IE8 die debugger einen Haltepunkt auf dem ersten Stück JavaScript-code, der ausgeführt wird, und dann weiter drücken der "Step" - Taste, bis das Fehler-Symbol erscheint in der linken unteren Ecke des Browsers. Wenn das passiert, wissen Sie die Codezeile, die den Fehler verursacht, war eine, die markierte, kurz bevor Sie geklickt haben Schritt. Es ist wahrscheinlich sehr wenig code, Sie werden Durchlaufen, obwohl, aber ich kann nicht an nichts anderes denken (gut, mit Ausnahme der Kontaktaufnahme mit den Anbietern, dass 3rd-party-code und sehen, ob Sie irgendwelche updates, die im Zusammenhang).
Natürlich, Sie konnte nur sagen, Ihre Benutzer ein upgrade auf IE8. 😉
Und Microsoft hat empfehlen ein Upgrade auf IE8!