Que signifie «en attente» pour une demande dans la fenêtre du développeur Chrome?

104

Que signifie " En attente " dans la colonne "État " de l'onglet " Réseau " de la fenêtre des développeurs Google Chrome?

Cela se produit lorsque mon script de page émet une requête GET dont la réponse contient des en-têtes de contenu pour télécharger un fichier CSV:

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

Cela fonctionne bien dans FF et IE7, en téléchargeant un fichier CSV comme prévu et en ouvrant un sélecteur de fichiers pour enregistrer le fichier, mais Chrome ne fait rien. J'ai confirmé que le serveur répond à la demande, il semble donc que Chrome ne traitera pas la réponse.

Curieusement, tout fonctionne comme prévu si je tape l'URL dans la barre d'adresse de Chromes et frappe.

FYI: Chrome 10.0.648.204 sur Win-XP

Lawrence I. Siden
la source
J'ai un problème similaire avec les fichiers javascript. Les bibliothèques jQuery ne se chargent pas correctement et posent des problèmes.
Jack M.
N'oubliez pas que les extensions peuvent être à l'origine de ce problème - j'ai eu un tel problème avec l'inclusion d'un pixel de suivi d'affiliation tiers, la demande est restée à jamais bloquée comme `` en attente ''. Il s'est avéré que j'avais oublié de désactiver le blocage des publicités!
Andy Smith
13
Notez que cette question (la première phrase) n'a toujours pas reçu de réponse. Toutes les réponses ci-dessous (à ce jour) sont simplement «c'est ce qui m'a causé». Le message est très générique et peut être causé par un grand nombre de problèmes. Si je savais exactement ce qu'ils étaient, je répondrais, mais en général, cela semble vouloir dire que pour une raison quelconque, la communication est empêchée quelque part entre la page et le serveur. Par "page", je ne veux pas dire navigateur, les extensions de navigateur peuvent causer cela, comme mentionné ailleurs.
AlexMA
1
voir cela avec la version actuelle de Google Chrome Canary (v43) mais pas la version stable de Chrome (v40) avec les URL de cloudfront
Simon_Weaver

Réponses:

61

Dans mon cas, j'ai trouvé (après avoir beaucoup tiré les cheveux) que le statut «en attente» était causé par l'extension AdBlock. L'image que je n'ai pas pu charger avait le mot "annonce" dans l'URL, donc AdBlock l'a empêchée de se charger.

La désactivation d'AdBlock résout ce problème.

Renommer le fichier pour qu'il ne contienne pas "ad" dans l'URL le corrige également, et est évidemment une meilleure solution. À moins que ce ne soit une publicité, auquel cas vous devriez la laisser comme ça. :)

Robin Daugherty
la source
1
J'ai vu la même chose dans Chrome avec l'extension TamperMonkey installée.
sstn
1
@Robin Daugherty, l'extension adblock est côté serveur ou côté client ?, côté client dans mon cas, il n'y a rien. Et le statut en attente se termine entre 1,8 min et 2,2 min ... qu'est-ce qui ne va pas? mauvais réseau ?.
Juan Ruiz de Castilla
1
Il peut s'agir de toute autre extension qui bloque le chargement du fichier. Essayez d'utiliser une fenêtre de navigation privée, où toutes vos extensions sont désactivées. (Certaines extensions peuvent être activées en mode navigation privée, vous devriez donc vérifier.)
Robin Daugherty
Je me tirais les cheveux en essayant de comprendre pourquoi mon environnement de développement (Angular et Visual Studio) était si lent. La désactivation d'uBlock a fait l'affaire. MERCI!
XVargas
2
Le mien se produit dans IE qui ne prend pas en charge AdBlocker ... :( C'est un problème intermittent pour moi.
Json
5

J'obtiens également cela lorsque j'utilise le plugin HTTPS partout. Ce plugin a une liste de sites qui ont également https au lieu de http. Je suppose donc qu'avant que la demande ne soit faite, elle est déjà annulée d'une manière ou d'une autre.

Ainsi, par exemple, lorsque je vais sur http://stackexchange.com , dans Developer, je vois d'abord une demande avec le statut (terminé). Cette demande a quelques en-têtes, mais uniquement GET, User-Agent et Accept. Pas de réponse non plus.

Ensuite, il y a une demande à https://stackexchange.com avec des en-têtes complets, etc.

Je suppose donc qu'il est utilisé pour les demandes qui ne sont pas envoyées.

personne
la source
5

J'ai eu quelques problèmes avec la demande en attente de fichiers mp3. J'avais une liste de fichiers mp3 et un lecteur pour les lire. Si je choisissais un fichier qui avait déjà été téléchargé, Chrome bloquerait la demande et afficherait "demande en attente" dans l'onglet réseau des outils de développement.

Toutes les versions de Chrome semblent être affectées.

Voici une solution que j'ai trouvée:

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

Vous ajoutez simplement une chaîne de requête factice à la fin de chaque URL. Cela force Chrome à télécharger à nouveau le fichier.

Un autre exemple avec un lecteur de pop-corn (en utilisant jquery):

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

Cela fonctionne pour moi. En fait, la ressource n'est pas stockée dans le système de cache. Cela devrait également fonctionner de la même manière pour les fichiers .csv.

Necko
la source
2

J'ai eu le même problème sur OSX Mavericks, il s'est avéré que l'antivirus Sophos bloquait certaines demandes, une fois que je l'ai désinstallé, le problème a disparu.

Si vous pensez que cela pourrait être causé par une extension, un moyen simple d'essayer de le tester est d'ouvrir Chrome avec l' '--disable-extensionsindicateur pour voir si cela résout le problème. Si cela ne résout pas le problème, envisagez de regarder au-delà du navigateur pour voir si une autre application pourrait causer le problème, en particulier les applications de sécurité qui peuvent affecter les demandes.

Santiago Angel
la source
2

L'état en attente du réseau à temps signifie que votre demande est en cours. Dès qu'il répond, le temps sera mis à jour avec le temps total écoulé.

Cette image montre que l'appel réseau est en cours de traitement (en attente) Cette image montre que l'appel réseau est en cours de traitement (en attente)

Cette image montre le temps de traitement par appel réseau. Cette image montre le temps de traitement par appel réseau

Harendra Kr. Jadon
la source
1
Je regarde actuellement les temps écoulés faussement rapportés. Il resterait en fait en attente pendant 4 s, mais rapporterait 150 ms. Et c'est relativement la durée pendant laquelle le serveur gère ces rapports de demandes (150 ms). C'est comme si quelque chose retenait artificiellement la demande de résolution ...
Nikolay Tsenkov
1

J'ai eu un problème similaire avec les appels ajax application / json. En ff / IE, ils allaient bien. Dans Chrome, dans la fenêtre Developer Network, l'état était toujours (en attente) car un code d'état différent était renvoyé.

Dans mon cas, j'ai changé ma réponse Json pour envoyer un HttpStatusCode de 200 puis Chrome était bien et le texte d'état a été changé en 200 OK.

Par exemple en utilisant l'API Web ASP.NET

 return new HttpResponseMessage(HttpStatusCode.OK ) {
            Content = request.Content
        };
Jafin
la source
pouvez-vous donner un petit exemple de comment et où vous modifiez le HttpStatusCode?
Aras
1

Même problème avec Chrome: j'avais dans ma page html le code suivant:

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

Mais le load.jsétait toujours en statutpending lors de la recherche dans le panneau Réseau.

J'ai trouvé une solution de contournement en utilisant une charge asynchrone de 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>

Maintenant ça marche bien.

SébastienC
la source
0

Je suis tombé sur ce problème lorsque je déboguais une application Web locale. Le problème s'est avéré être les restrictions d'AVG Antivirus et du pare-feu. J'ai dû autoriser une exception à travers le pare-feu pour me débarrasser du statut "En attente".

Sanjeet Sahay
la source
0

Le correctif, pour moi, était d'ajouter ce qui suit en haut du fichier php qui était demandé.

header("Cache-Control: no-cache,no-store");
Anonyme
la source
0

Dans mon cas, il existe une mise à jour pour Chrome qui empêche le chargement avant que vous redémarriez le navigateur. À votre santé

Stefanus Diptya
la source
-3

J'ai rencontré le même problème lorsque je demande certaines images de la page. J'utilise JavaScript pour définir l'attribut src d'un objet img et si le réseau est médiocre, l'attente sera affichée dans le panneau réseau de la fenêtre du développeur Chrome. Je pense que c'est dû au mauvais réseau.

jz1108
la source
4
J'ai le même problème, mais les images apparaissent toujours directement sur IE ou FF, donc ce n'est pas le réseau. En outre, il est intermittent. Vous vous demandez si vous avez de nouvelles idées
Lior
Même problème ici. Sur FF, ces images se chargent bien.
svassr