O que significa “pendente” para solicitação na janela do desenvolvedor do Chrome?

104

O que significa " Pendente " na coluna de status no " guia " Rede " da janela do desenvolvedor do Google Chrome?

Isso acontece quando meu script de página emite uma solicitação GET cuja resposta contém cabeçalhos de conteúdo para baixar um arquivo CSV:

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

Isso funciona bem no FF e no IE7, baixando um arquivo CSV conforme o esperado e abrindo um seletor de arquivo para salvar o arquivo, mas o Chrome não faz nada. Confirmei que o servidor responde à solicitação, então parece que o Chrome não processará a resposta.

Curiosamente, tudo funciona conforme o esperado se eu digitar a URL na barra de endereços do Chromes e clicar em.

Para sua informação: Chrome 10.0.648.204 no Win-XP

Lawrence I. Siden
fonte
Tenho um problema semelhante com arquivos javascript. As bibliotecas jQuery não estão carregando corretamente e causando problemas.
Jack M.
Não se esqueça de que as extensões podem estar causando esse problema - eu tive um problema com a inclusão de alguns pixels de rastreamento de afiliados de terceiros, a solicitação ficou para sempre travada como 'pendente. Acontece que eu tinha esquecido de desativar o bloqueio de anúncios!
Andy Smith
13
Observe que esta pergunta (a primeira frase) ainda não foi respondida. Todas as respostas abaixo (a partir de hoje) são apenas "isso é o que causou isso para mim." A mensagem é muito genérica e pode ser causada por um grande número de problemas. Se eu soubesse exatamente o que são, responderia, mas no geral parece significar que por algum motivo a comunicação está sendo impedida em algum lugar entre a página e o servidor. Por "página" não quero dizer navegador, as extensões do navegador podem causar isso, conforme mencionado em outro lugar.
AlexMA
1
vendo isso com a versão atual do Google Chrome Canary (v43), mas não com a versão estável do Chrome (v40) com URLS do cloudfront
Simon_Weaver

Respostas:

61

No meu caso, descobri (depois de muito puxar o cabelo) que o status "pendente" foi causado pela extensão AdBlock. A imagem que não consegui carregar tinha a palavra "anúncio" no URL, então AdBlock impediu que carregasse.

Desativar o AdBlock corrige esse problema.

Renomear o arquivo para que não contenha "anúncio" no URL também corrige o problema e é obviamente uma solução melhor. A menos que seja um anúncio, caso em que deve deixá-lo assim. :)

Robin Daugherty
fonte
1
Eu vi a mesma coisa no Chrome com a extensão TamperMonkey instalada.
sstn
1
@Robin Daugherty, a extensão adblock está do lado do servidor ou do lado do cliente ?, do lado do cliente no meu caso não há nada. E o status pendente termina entre 1,8 min e 2,2 min ... o que pode estar errado? rede ruim?
Juan Ruiz de Castilla
1
Pode ser qualquer outra extensão que bloqueie o carregamento do arquivo. Tente usar uma janela anônima, onde todas as suas extensões estão desativadas. (Algumas extensões podem estar ativadas no modo de navegação anônima, portanto, verifique.)
Robin Daugherty,
Eu estava puxando meu cabelo tentando descobrir por que meu ambiente de desenvolvimento (Angular e Visual Studio) era tão lento. Desativar o uBlock resolveu o problema. OBRIGADO!
XVargas
2
O meu ocorre no IE, que não suporta AdBlocker ... :( Este é um problema intermitente para mim.
Json
5

Eu também entendo isso ao usar o plug-in HTTPS em qualquer lugar. Este plugin possui uma lista de sites que também possuem https em vez de http. Portanto, presumo que antes que a solicitação seja feita, ela já está sendo cancelada de alguma forma.

Assim, por exemplo, quando vou para http://stackexchange.com , no Desenvolvedor vejo primeiro uma solicitação com status (encerrado). Esta solicitação tem alguns cabeçalhos, mas apenas GET, User-Agent e Accept. Sem resposta também.

Depois, há uma solicitação para https://stackexchange.com com cabeçalhos completos, etc.

Portanto, presumo que seja usado para solicitações que não são enviadas.

ninguém
fonte
5

Tive alguns problemas com a solicitação pendente de arquivos mp3. Eu tinha uma lista de arquivos mp3 e um player para reproduzi-los. Se eu escolher um arquivo que já foi baixado, o Chrome bloqueará a solicitação e mostrará "solicitação pendente" na guia de rede das ferramentas do desenvolvedor.

Todas as versões do Chrome parecem ter sido afetadas.

Aqui está uma solução que encontrei:

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

Você acabou de adicionar uma string de consulta fictícia ao final de cada url. Isso força o Chrome a baixar o arquivo novamente.

Outro exemplo com o tocador de pipoca (usando jquery):

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

Isso funciona para mim. Na verdade, o recurso não é armazenado no sistema de cache. Isso também deve funcionar da mesma maneira para arquivos .csv.

Necko
fonte
2

Eu tive o mesmo problema no OSX Mavericks, descobri que o antivírus Sophos estava bloqueando certas solicitações, depois que eu desinstalei o problema foi embora.

Se você acha que isso pode ser causado por uma extensão, uma maneira fácil de tentar e testar isso é abrir o Chrome com o '--disable-extensionssinalizador para ver se ele corrige o problema. Se isso não resolver, considere olhar além do navegador para ver se algum outro aplicativo pode estar causando o problema, especificamente aplicativos de segurança que podem afetar as solicitações.

Santiago anjo
fonte
2

O estado pendente da rede no tempo significa que sua solicitação está em andamento. Assim que responder o tempo será atualizado com o tempo total decorrido.

Esta imagem mostra que a chamada de rede está em estado de processamento (Pendente) Esta imagem mostra que a chamada de rede está em estado de processamento (Pendente)

Esta foto mostra o tempo gasto no processamento por chamada de rede. Esta imagem mostra o tempo gasto no processamento por chamada de rede

Harendra Kr. Jadon
fonte
1
No momento, vejo tempos decorridos informados falsamente. Na verdade, ficaria pendente por 4s, mas relataria 150ms. E é relativamente quanto tempo o servidor lida com esses relatórios de solicitações (150 ms ou seja). É como se algo artificialmente estivesse impedindo a resolução do pedido ...
Nikolay Tsenkov
1

Eu tive um problema semelhante com chamadas ajax de aplicativo / json. No ff / IE eles estavam bem. No cromo, na janela do Developer Network, o status estava sempre (pendente) porque um código de status diferente estava sendo retornado.

No meu caso, mudei minha resposta Json para enviar um HttpStatusCode de 200, então o Chrome funcionou bem e o Texto de status mudou para 200 OK.

Por exemplo, usando ASP.NET Web Api

 return new HttpResponseMessage(HttpStatusCode.OK ) {
            Content = request.Content
        };
Jafin
fonte
você pode dar um pequeno exemplo de como e onde você altera o HttpStatusCode?
Aras
1

O mesmo problema com o Chrome: eu tinha em minha página html o seguinte código:

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

Mas load.jssempre esteve em statuspending ao olhar no painel Rede.

Eu encontrei uma solução alternativa usando carga assíncrona 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>

Agora está funcionando bem.

SebastienC
fonte
0

Eu me deparei com esse problema quando estava depurando um aplicativo da web local. O problema acabou sendo as restrições do AVG Antivirus e Firewall. Tive que permitir uma exceção por meio do firewall para me livrar do status "Pendente".

Sanjeet Sahay
fonte
0

A correção, para mim, foi adicionar o seguinte ao topo do arquivo php que estava sendo solicitado.

header("Cache-Control: no-cache,no-store");
Anônimo
fonte
0

No meu caso, há uma atualização para o Chrome que faz com que ele não carregue antes de reiniciar o navegador. Felicidades

Stefanus Diptya
fonte
-3

Eu encontrei o mesmo problema quando solicitei certas imagens da página. Eu uso JavaScript para definir o atributo src de um objeto img e, se a rede estiver ruim, o pendente será exibido no painel de rede da janela do desenvolvedor do Chrome. Acho que é por causa da rede ruim.

jz1108
fonte
4
Tenho o mesmo problema, mas as imagens sempre surgem direto no IE ou FF, então não é a rede. Além disso, é intermitente. Gostaria de saber se você tem novos insights
Lior
Mesmo problema aqui. No FF essas imagens carregam bem.
svassr