Che cosa significa "in sospeso" per la richiesta nella finestra per sviluppatori di Chrome?


104

Che cosa significa " In attesa " nella colonna dello stato nella scheda " Rete " della finestra per sviluppatori di Google Chrome?

Ciò accade quando lo script della mia pagina invia una richiesta GET la cui risposta contiene intestazioni di contenuto per il download di un file CSV:

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

Funziona bene in FF e IE7, scaricando un file CSV come previsto e aprendo un selettore di file per salvare il file, ma Chrome non fa nulla. Ho confermato che il server risponde alla richiesta, quindi sembra che Chrome non elaborerà la risposta.

Curiosamente, tutto funziona come previsto se digito l'URL nella barra degli indirizzi di Chromes e premo.

FYI: Chrome 10.0.648.204 su Win-XP


Ho un problema simile con i file javascript. Le librerie jQuery non vengono caricate correttamente e causano problemi.
Jack M.

Non dimenticare che le estensioni potrebbero causare questo problema: ho avuto un problema simile con l'inclusione di alcuni pixel di monitoraggio di affiliati di terze parti, la richiesta è rimasta bloccata per sempre come "in sospeso". Si è scoperto che mi ero dimenticato di disattivare il blocco degli annunci!
Andy Smith

13
Nota che questa domanda (la prima frase) non ha ancora avuto risposta. Tutte le risposte di seguito (ad oggi) sono semplicemente "questo è ciò che mi ha causato." Il messaggio è molto generico e può essere causato da un gran numero di problemi. Se sapessi esattamente cosa sono risponderei, ma in generale sembra voler dire che per qualche motivo la comunicazione viene impedita da qualche parte tra la pagina e il server. Con "pagina" non intendo browser, le estensioni del browser possono causare questo come menzionato altrove.
AlexMA

1
vedendolo con l'attuale versione di Google Chrome Canary (v43) ma non con la versione stabile di Chrome (v40) con URL da cloudfront
Simon_Weaver

Risposte:


61

Nel mio caso, ho scoperto (dopo aver tirato i capelli) che lo stato "in sospeso" era causato dall'estensione AdBlock. L'immagine che non sono riuscito a caricare aveva la parola "annuncio" nell'URL, quindi AdBlock ne ha impedito il caricamento.

La disabilitazione di AdBlock risolve questo problema.

Rinominare il file in modo che non contenga "annuncio" nell'URL lo risolve ed è ovviamente una soluzione migliore. A meno che non sia una pubblicità, nel qual caso dovresti lasciarla così. :)


1
Ho visto la stessa cosa in Chrome con l'estensione TamperMonkey installata.
sstn

1
@Robin Daugherty, l'estensione adblock è sul lato server o lato client ?, nel lato client nel mio caso non c'è niente. E lo stato in attesa termina tra 1,8 min e 2,2 min ... cosa potrebbe esserci di sbagliato? rete scadente ?.
Juan Ruiz de Castilla

1
Potrebbe essere qualsiasi altra estensione che blocca il caricamento del file. Prova a utilizzare una finestra di navigazione in incognito, in cui tutte le estensioni sono disabilitate. (Alcune estensioni potrebbero essere abilitate in modalità di navigazione in incognito, quindi dovresti controllare.)
Robin Daugherty

Mi stavo strappando i capelli cercando di capire perché il mio ambiente di sviluppo (Angular e Visual Studio) fosse così lento. Disabilitare uBlock ha funzionato. GRAZIE!
XVargas

2
Il mio si verifica in IE che non supporta AdBlocker ... :( Questo è un problema intermittente per me.
Json

5

Ottengo anche questo quando utilizzo il plug-in HTTPS ovunque. Questo plugin ha un elenco di siti che hanno anche https invece di http. Quindi presumo che prima che venga effettuata la richiesta effettiva sia già stata annullata in qualche modo.

Quindi, ad esempio, quando vado su http://stackexchange.com , in Developer vedo prima una richiesta con lo stato (terminato). Questa richiesta ha alcune intestazioni, ma solo GET, User-Agent e Accept. Nessuna risposta pure.

Quindi c'è una richiesta a https://stackexchange.com con intestazioni complete ecc.

Quindi presumo che venga utilizzato per le richieste che non vengono inviate.


5

Ho avuto dei problemi con la richiesta in sospeso di file mp3. Avevo un elenco di file mp3 e un lettore per riprodurli. Se scegliessi un file che era già stato scaricato, Chrome bloccherebbe la richiesta e mostrerebbe "richiesta in sospeso" nella scheda di rete degli strumenti per sviluppatori.

Tutte le versioni di Chrome sembrano essere interessate.

Ecco una soluzione che ho trovato:

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

Devi solo aggiungere una stringa di query fittizia alla fine di ogni URL. Ciò costringe Chrome a scaricare nuovamente il file.

Un altro esempio con il lettore di popcorn (usando jquery):

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

Questo funziona per me. In effetti, la risorsa non è archiviata nel sistema di cache. Questo dovrebbe funzionare allo stesso modo anche per i file .csv.


2

Ho avuto lo stesso problema su OSX Mavericks, si è scoperto che l'antivirus Sophos stava bloccando alcune richieste, una volta disinstallato il problema è scomparso.

Se pensi che possa essere causato da un'estensione, un modo semplice per provare e testare è aprire Chrome con il '--disable-extensionsflag per vedere se risolve il problema. Se ciò non risolve, considera di guardare oltre il browser per vedere se qualsiasi altra applicazione potrebbe causare il problema, in particolare le app di sicurezza che possono influenzare le richieste.


2

Lo stato di attesa della rete in tempo indica che la tua richiesta è in corso. Non appena risponde, il tempo verrà aggiornato con il tempo totale trascorso.

Questa immagine mostra che la chiamata di rete è in stato di elaborazione (in sospeso) Questa immagine mostra che la chiamata di rete è in stato di elaborazione (in sospeso)

Questa immagine mostra il tempo impiegato per l'elaborazione dalla chiamata di rete. Questa immagine mostra il tempo impiegato per l'elaborazione dalla chiamata di rete


1
Attualmente guardo i tempi trascorsi falsamente riportati. In realtà rimarrebbe in sospeso per 4 secondi, ma segnalerebbe 150 ms. E questo è relativamente per quanto tempo il server gestisce i rapporti sulle richieste (150 ms). È come se qualcosa
impedisse

1

Ho avuto un problema simile con le chiamate application / json ajax. In ff / IE andavano bene. In Chrome nella finestra Developer Network lo stato era sempre (in sospeso) perché veniva restituito un codice di stato diverso.

Nel mio caso ho cambiato la mia risposta Json per inviare un HttpStatusCode di 200, quindi Chrome andava bene e il testo di stato è cambiato in 200 OK.

Ad esempio utilizzando ASP.NET Web Api

 return new HttpResponseMessage(HttpStatusCode.OK ) {
            Content = request.Content
        };

puoi fare un piccolo esempio di come e dove cambi il HttpStatusCode?
Aras

1

Stesso problema con Chrome: avevo nella mia pagina html il seguente codice:

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

Ma load.jsera sempre in stato pendingquando si guardava nel pannello di rete.

Ho trovato una soluzione alternativa utilizzando il caricamento asincrono di 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>

Ora funziona bene.


0

Ho riscontrato questo problema durante il debug di un'applicazione Web locale. Il problema si è rivelato essere le restrizioni di AVG Antivirus e Firewall. Ho dovuto consentire un'eccezione attraverso il firewall per eliminare lo stato "In sospeso".


0

La soluzione, per me, era aggiungere quanto segue all'inizio del file php che veniva richiesto.

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

0

Nel mio caso, c'è un aggiornamento per Chrome che impedisce il caricamento prima di riavviare il browser. Saluti


-3

Ho riscontrato lo stesso problema quando ho richiesto determinate immagini dalla pagina. Uso JavaScript per impostare l'attributo src di un oggetto img e se la rete è scarsa, in attesa verrà visualizzato nel pannello di rete della finestra dello sviluppatore di Chrome. Penso che sia dovuto alla scarsa rete.


4
ho lo stesso problema, ma le immagini vengono sempre su IE o FF, quindi non è la rete. Inoltre, è intermittente. Mi chiedevo se avessi nuove intuizioni
Lior

Stesso problema qui. Su FF quelle immagini si caricano bene.
svassr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.