Was bedeutet "ausstehend" für eine Anforderung im Chrome Developer Window?

104

Was bedeutet " Ausstehend " in der Statusspalte auf der Registerkarte " Netzwerk " des Google Chrome Developer-Fensters?

Dies geschieht, wenn mein Seitenskript eine GET-Anforderung ausgibt, deren Antwort Inhaltsheader zum Herunterladen einer CSV-Datei enthält:

Content-type: text/csv;
Content-Disposition: attachment; filename=myfile.csv

Dies funktioniert in FF und IE7 einwandfrei, indem eine CSV-Datei wie erwartet heruntergeladen und eine Dateiauswahl zum Speichern der Datei geöffnet wird, Chrome jedoch nichts unternimmt. Ich habe bestätigt, dass der Server auf die Anfrage antwortet, sodass Chrome die Antwort anscheinend nicht verarbeitet.

Seltsamerweise funktioniert alles wie erwartet, wenn ich die URL in die Adressleiste von Chromes eingebe und drücke.

Zu Ihrer Information: Chrome 10.0.648.204 unter Win-XP

Lawrence I. Siden
quelle
Ich habe ein ähnliches Problem mit Javascript-Dateien. jQuery-Bibliotheken werden nicht richtig geladen und verursachen Probleme.
Jack M.
Vergessen Sie nicht, dass Erweiterungen dieses Problem verursachen könnten. Ich hatte ein derartiges Problem mit der Aufnahme von Partner-Tracking-Pixeln von Drittanbietern. Die Anfrage blieb für immer als "ausstehend" hängen. Es stellte sich heraus, dass ich vergessen hatte, den Werbeblocker auszuschalten!
Andy Smith
13
Beachten Sie, dass diese Frage (der erste Satz) noch nicht beantwortet wurde. Alle Antworten unten (bis heute) sind nur "das hat es für mich verursacht". Die Nachricht ist sehr allgemein gehalten und kann durch eine große Anzahl von Problemen verursacht werden. Wenn ich genau wüsste, was sie sind, würde ich antworten, aber im Allgemeinen scheint dies zu bedeuten, dass aus irgendeinem Grund die Kommunikation irgendwo zwischen der Seite und dem Server verhindert wird. Mit "Seite" meine ich nicht Browser, Browser-Erweiterungen können dies verursachen, wie an anderer Stelle erwähnt.
AlexMA
1
Dies wird mit der aktuellen Version von Google Chrome Canary (Version 43) angezeigt, jedoch nicht mit der stabilen Version von Chrome (Version 40) mit URLs von Cloudfront
Simon_Weaver,

Antworten:

60

In meinem Fall stellte ich (nach langem Ziehen) fest, dass der Status "Ausstehend" durch die AdBlock-Erweiterung verursacht wurde. Das Bild, das ich nicht laden konnte, hatte das Wort "Anzeige" in der URL, sodass AdBlock es nicht laden konnte.

Das Deaktivieren von AdBlock behebt dieses Problem.

Das Umbenennen der Datei, sodass die URL keine "Anzeige" enthält, behebt sie ebenfalls und ist offensichtlich eine bessere Lösung. Wenn es sich nicht um eine Werbung handelt, sollten Sie sie in diesem Fall so belassen. :) :)

Robin Daugherty
quelle
1
Ich habe dasselbe in Chrome mit der installierten TamperMonkey-Erweiterung gesehen.
Sstn
1
@Robin Daugherty, die Adblock-Erweiterung befindet sich auf der Server- oder Client-Seite? Auf der Client-Seite gibt es in meinem Fall nichts. Und der ausstehende Status endet zwischen 1,8 und 2,2 Minuten ... was könnte falsch sein? schlechtes Netzwerk?.
Juan Ruiz de Castilla
1
Es kann sich um eine beliebige andere Erweiterung handeln, die das Laden der Datei blockiert. Versuchen Sie es mit einem Inkognito-Fenster, in dem alle Ihre Erweiterungen deaktiviert sind. (Einige Erweiterungen sind möglicherweise im Inkognito-Modus aktiviert, daher sollten Sie dies überprüfen.)
Robin Daugherty
Ich habe mir die Haare ausgezogen, um herauszufinden, warum meine Entwicklungsumgebung (Angular & Visual Studio) so langsam war. Das Deaktivieren von uBlock hat den Trick gemacht. VIELEN DANK!
XVargas
2
Meins tritt in IE auf, das AdBlocker nicht unterstützt ... :( Dies ist ein zeitweiliges Problem für mich.
Json
5

Ich bekomme dies auch, wenn ich das HTTPS-Plugin überall verwende. Dieses Plugin enthält eine Liste von Websites, die auch https anstelle von http haben. Ich gehe also davon aus, dass die eigentliche Anfrage bereits storniert wird, bevor sie tatsächlich gestellt wird.

Wenn ich zum Beispiel zu http://stackexchange.com gehe, sehe ich in Developer zuerst eine Anfrage mit Status (beendet). Diese Anforderung enthält einige Header, jedoch nur GET, User-Agent und Accept. Auch keine Antwort.

Dann gibt es eine Anfrage an https://stackexchange.com mit vollständigen Headern usw.

Ich gehe also davon aus, dass es für Anfragen verwendet wird, die nicht gesendet werden.

niemand
quelle
5

Ich hatte einige Probleme mit der ausstehenden Anfrage nach MP3-Dateien. Ich hatte eine Liste von MP3-Dateien und einen Player, um sie abzuspielen. Wenn ich eine Datei ausgewählt hätte, die bereits heruntergeladen wurde, würde Chrome die Anforderung blockieren und "Ausstehende Anforderung" auf der Registerkarte "Netzwerk" der Entwicklertools anzeigen.

Alle Versionen von Chrome scheinen betroffen zu sein.

Hier ist eine Lösung, die ich gefunden habe:

player[0].setAttribute('src','video.webm?dummy=' + Date.now());

Sie fügen einfach eine Dummy-Abfragezeichenfolge am Ende jeder URL hinzu. Dadurch wird Chrome gezwungen, die Datei erneut herunterzuladen.

Ein weiteres Beispiel mit Popcorn-Player (mit jquery):

url = $(this).find('.url_song').attr('url');
pop = Popcorn.smart( "#player_",  url + '?i=' + Date.now());

Das funktioniert bei mir. Tatsächlich wird die Ressource nicht im Cache-System gespeichert. Dies sollte auch für CSV-Dateien funktionieren.

Necko
quelle
2

Ich hatte das gleiche Problem mit OSX Mavericks. Es stellte sich heraus, dass Sophos Antivirus bestimmte Anforderungen blockierte. Nach der Deinstallation war das Problem behoben.

Wenn Sie der Meinung sind, dass dies durch eine Erweiterung verursacht werden könnte, können Sie dies auf einfache Weise testen, indem Sie Chrome mit dem '--disable-extensionsFlag öffnen, um festzustellen , ob das Problem dadurch behoben wird. Wenn sich das nicht beheben lässt, sollten Sie über den Browser hinaus nachsehen, ob eine andere Anwendung das Problem verursacht, insbesondere Sicherheits-Apps, die sich auf Anforderungen auswirken können.

Santiago Angel
quelle
2

Der Status "Netzwerk ausstehend" bedeutet, dass sich Ihre Anfrage im Status "Fortschritt" befindet. Sobald es antwortet, wird die Zeit mit der insgesamt verstrichenen Zeit aktualisiert.

Dieses Bild zeigt, dass sich der Netzwerkanruf im Verarbeitungsstatus befindet (ausstehend). Dieses Bild zeigt, dass sich der Netzwerkanruf im Verarbeitungsstatus befindet (ausstehend).

Dieses Bild zeigt die Zeit, die für die Verarbeitung per Netzwerkanruf benötigt wird. Dieses Bild zeigt die Zeit, die für die Verarbeitung per Netzwerkanruf benötigt wird

Harendra Kr. Jadon
quelle
1
Ich schaue mir derzeit falsch gemeldete verstrichene Zeiten an. Es würde tatsächlich 4 Sekunden lang anstehen, aber 150 ms melden. Und so lange meldet der Server, der diese Anforderungen bearbeitet, (150 ms). Es ist, als ob etwas künstlich die Anfrage von der Lösung hält ...
Nikolay Tsenkov
1

Ich hatte ein ähnliches Problem mit Application / JSON Ajax-Aufrufen. In ff / IE waren sie in Ordnung. In Chrome im Fenster "Entwicklernetzwerk" war der Status immer (ausstehend), da ein anderer Statuscode zurückgegeben wurde.

In meinem Fall habe ich meine Json-Antwort geändert, um einen HttpStatusCode von 200 zu senden. Dann war Chrome in Ordnung und der Statustext wurde in 200 OK geändert.

Zum Beispiel mit ASP.NET Web Api

 return new HttpResponseMessage(HttpStatusCode.OK ) {
            Content = request.Content
        };
Jafin
quelle
Können Sie ein kleines Beispiel geben, wie und wo Sie das ändern HttpStatusCode?
Aras
1

Gleiches Problem mit Chrome: Ich hatte auf meiner HTML-Seite den folgenden Code:

<body>
  ...
  <script src="http://myserver/lib/load.js"></script>
  ...
</body>

Aber das load.jswar immer im Status, pendingwenn man in das Netzwerkfenster schaut.

Ich habe eine Problemumgehung mit asynchronem Laden gefunden von load.js:

<body>
  ...
  <script>
    setTimeout(function(){
      var head, script;
      head = document.getElementsByTagName("head")[0];
      script = document.createElement("script");
      script.src = "http://myserver/lib/load.js";
      head.appendChild(script);
    }, 1);
  </script>
  ...
</body>

Jetzt funktioniert es gut.

SebastienC
quelle
0

Ich bin auf dieses Problem gestoßen, als ich eine lokale Webanwendung debuggte. Es stellte sich heraus, dass es sich um AVG Antivirus- und Firewall-Einschränkungen handelte. Ich musste eine Ausnahme durch die Firewall zulassen, um den Status "Ausstehend" zu entfernen.

Sanjeet Sahay
quelle
0

Die Lösung bestand für mich darin, Folgendes oben in die angeforderte PHP-Datei einzufügen.

header("Cache-Control: no-cache,no-store");
Anonym
quelle
0

In meinem Fall gibt es ein Update für Chrome, mit dem es nicht geladen wird, bevor Sie den Browser neu starten. Prost

Stefanus Diptya
quelle
-3

Ich habe das gleiche Problem festgestellt, als ich bestimmte Bilder von der Seite angefordert habe. Ich verwende JavaScript, um das src-Attribut eines img-Objekts festzulegen. Wenn das Netzwerk schlecht ist, wird es im Netzwerkfenster des Chrome-Entwicklerfensters angezeigt. Ich denke, das liegt an dem schlechten Netzwerk.

jz1108
quelle
4
Ich habe das gleiche Problem, aber die Bilder werden immer direkt im IE oder FF angezeigt, es ist also nicht das Netzwerk. Es ist auch intermittierend. Ich frage mich, ob Sie neue Erkenntnisse haben
Lior
Gleiches Problem hier. Auf FF werden diese Bilder gut geladen.
Svassr