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


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. :)


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.


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.


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.


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


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
        };

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.


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".


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");

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


-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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.