517 Stimmen

Was bedeutet status=cancled für eine Ressource in den Chrome Developer Tools?

Was würde dazu führen, dass eine Seite abgebrochen wird? Ich habe einen Screenshot der Chrome Developer Tools.

Canceled Resource

Das passiert oft, aber nicht immer. Es scheint, als ob, sobald einige andere Ressourcen zwischengespeichert werden, eine Seite aktualisieren wird die LeftPane.aspx laden. Und was wirklich seltsam ist, passiert dies nur in Google Chrome, nicht Internet Explorer 8. Irgendwelche Ideen, warum Chrome eine Anfrage abbrechen würde?

747voto

whamma Punkte 7938

Wir hatten mit einem ähnlichen Problem zu kämpfen, bei dem Chrome Anfragen zum Laden von Dingen innerhalb von Frames oder Iframes abbrach, allerdings nur sporadisch und anscheinend abhängig vom Computer und/oder der Geschwindigkeit der Internetverbindung.

Diese Information ist schon ein paar Monate veraltet, aber ich habe Chromium von Grund auf neu gebaut, den Quellcode durchforstet, um alle Stellen zu finden, an denen Anfragen abgebrochen werden können, und an allen Stellen Haltepunkte gesetzt, um sie zu debuggen. Soweit ich mich erinnere, sind die einzigen Stellen, an denen Chrome eine Anfrage abbricht:

  • Das DOM-Element, das die Anfrage ausgelöst hat, wurde gelöscht (d.h. ein IMG wird geladen, aber bevor es geladen wurde, haben Sie den IMG-Knoten gelöscht)
  • Sie haben etwas getan, das das Laden der Daten unnötig machte. (z. B. haben Sie mit dem Laden eines iframe begonnen und dann den src geändert oder den Inhalt überschrieben)
  • Es gehen viele Anfragen an denselben Server, und ein Netzwerkproblem bei früheren Anfragen hat gezeigt, dass nachfolgende Anfragen nicht funktionieren (DNS-Fehler, frühere (gleiche) Anfrage führte z. B. zu einem HTTP-400-Fehlercode usw.)

In unserem Fall haben wir es schließlich darauf zurückgeführt, dass ein Frame versuchte, HTML an einen anderen Frame anzuhängen, was manchmal geschah, bevor der Zielframe überhaupt geladen war. Sobald Sie den Inhalt eines iframe berühren, kann er die Ressource nicht mehr in ihn laden (woher sollte er wissen, wohin?) und bricht die Anfrage ab.

80voto

fuco Punkte 893

Status=cancled kann auch bei Ajax-Anfragen über JavaScript-Ereignisse auftreten:

<script>
  $("#call_ajax").on("click", function(event){
     $.ajax({
        ...    
     });
  });
</script>

<button id="call_ajax">call</button> 

Das Ereignis sendet die Anfrage erfolgreich, wird dann aber abgebrochen (aber vom Server verarbeitet). Der Grund dafür ist, dass die Elemente Formulare bei Klick-Ereignissen übermitteln, unabhängig davon, ob Sie bei demselben Klick-Ereignis eine Ajax-Anfrage stellen.

Um zu verhindern, dass eine Anfrage abgebrochen wird, muss JavaScript event.preventDefault(); angerufen werden müssen:

<script>
  $("#call_ajax").on("click", function(event){
     event.preventDefault();
     $.ajax({
        ...    
     });
  });
</script>

50voto

stianlp Punkte 949

NB: Stellen Sie sicher, dass Sie keine alle umhüllenden Formularelemente .

Ich hatte ein ähnliches Problem, bei dem meine Schaltfläche mit onclick={} in ein Formularelement eingeschlossen war. Wenn ich auf die Schaltfläche klicke, wird das Formular auch übermittelt, und das hat alles durcheinander gebracht...

16voto

limodou Punkte 151

In meinem Fall fand ich, dass es jquery globalen Timeout-Einstellungen, ein Jquery-Plugin Setup globalen Timeout zu 500ms, so dass, wenn die Anforderung 500ms überschreiten, Chrome wird die Anforderung abbrechen.

16voto

James Kyburz Punkte 12661

Ein weiteres Problem könnte die AdBlock-Erweiterung sein, oder Erweiterungen im Allgemeinen.

Aber "eine Menge" Leute haben AdBlock....

Um Erweiterungen auszuschließen, öffnen Sie eine neue Registerkarte im Inkognito-Modus und stellen Sie sicher, dass die Option "Im Inkognito-Modus zulassen" für die zu testende(n) Erweiterung(en) deaktiviert ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X