在 Chrome 开发者窗口中“挂起”是什么意思?

谷歌 Chrome 开发者窗口中“ 网络”标签下的状态栏中的“ 等待中”是什么意思?

当我的页面脚本发出一个 GET 请求,其响应包含用于下载 CSV 文件的内容头时,就会发生这种情况:

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

这在 FF 和 IE7中工作得很好,按照预期下载一个 CSV 文件并打开一个文件选择器来保存文件,但是 Chrome 什么也不做。我确认服务器响应了这个请求,所以看起来 Chrome 不会处理这个响应。

奇怪的是,如果我在 Chrome 地址栏中键入 URL 并按下 <enter>,所有的操作都会按预期进行。

仅供参考: Windows XP 上的 Chrome 10.0.648.204

152159 次浏览

我遇到了同样的问题,当我请求从页面的某些图像。我使用 JavaScript 来设置一个 img 对象的 src 属性,如果网络不好,挂起将显示在 Chrome 开发者窗口的网络面板。我觉得是因为网络不好。

我在应用程序/json ajax 调用中遇到过类似的问题。在 ff/IE 里他们很好。在 chrome 中,开发者网络窗口的状态总是(挂起) ,因为一个不同的状态代码被返回。

在我的情况下,我改变了我的 Json 响应发送一个 HttpStatusCode 为200,然后 Chrome 是罚款和状态文本改为200确定。

例如,使用 ASP.NET Web Api

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

我在使用 HTTPS Everywhere 插件时也会遇到这种情况。 这个插件有一个站点列表,这些站点也使用 https 代替 http。因此,我假设在实际请求发出之前,它已经以某种方式被取消了。

例如,当我转到 http://stackexchange.com时,在 Developer 中我首先看到一个状态(终止)的请求。这个请求有一些头,但是只有 GET、 User-Agent 和 Accept。也没有回应。

然后有请求 https://stackexchange.com与完整的头等。

因此,我假设它用于未发送的请求。

在我的例子中,我发现“挂起”状态是由 AdBlock 扩展引起的。我无法加载的图像在 URL 中有单词“ ad”,所以 AdBlock 阻止了它的加载。

Disabling AdBlock fixes this issue.

重命名文件,使其不包含“广告”的 URL 也修复了它,显然是一个更好的解决方案。除非是广告,这种情况下你应该就这么放着。

我有一些问题与未决的 MP3文件请求。 I had a list of mp3 files and one player to play them. If I picked a file that had already been downloaded, Chrome would block the request and show "pending request" in the network tab of the developer tools.

所有版本的 Chrome 似乎都受到了影响。

Here is a solution I found:

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

您只需在每个 url 的末尾添加一个虚拟查询字符串。这迫使 Chrome 再次下载该文件。

另一个爆米花播放器的例子(使用 jquery) :

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

这对我有用。事实上,资源不存储在缓存系统中。这也应该以相同的方式工作。CSV 文件。

我在调试一个本地 Web 应用程序时遇到了这个问题。问题原来是 AVG 杀毒和防火墙的限制。我必须允许一个异常通过防火墙,以摆脱“挂起”状态。

我在 OSX Mavericks 上遇到过同样的问题,结果发现 Sophos 反病毒程序阻塞了某些请求,一旦我卸载了它,这个问题就消失了。

如果你认为它可能是由一个扩展引起的一个简单的方法来尝试和测试这是打开与 '--disable-extensions标志铬,看看它是否修复了问题。如果这还不能解决问题,那就考虑在浏览器之外寻找是否有其他应用程序可能导致这个问题,特别是可能影响请求的安全应用程序。

对我来说,修复是将以下内容添加到所请求的 php 文件的顶部。

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

对我来说,有一个 Chrome 的更新,使得在你重启浏览器之前它不会加载。干杯

Chrome 也有同样的问题: 我的 html 页面中有以下代码:

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

但是在网络面板中查看时,load.js始终处于 pending状态。

我找到了一个使用 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>

现在可以正常工作了。

网络按时挂起状态,表示您的请求处于进展状态。只要它响应,时间就会更新为总运行时间。

此图片显示网络调用处于处理状态(挂起) This picture shows the network call is in processing state(Pending)

This picture shows the time taken in processing by network call. This picture shows the time taken in processing by network call

最近也遇到了类似的问题。 我的应用程序是在角11,我们有一个形式与一些验证器,其中有正则表达式来验证数据。其中一个数据元素有一个正则表达式无法处理的特殊字符,它使整个浏览器挂起。事实上,即使所有的网络调用都是成功的200 OK,chrome 也没有显示任何后端返回的响应,并且当所有的网络调用都成功的时候,Chrome 也显示了挂起状态的请求,没有任何控制台日志错误或者其他错误。处理正则表达式解决了这个问题。 After i found the issue, i googled more about it. Here is more explanation about it. Https://javascript.info/regexp-catastrophic-backtracking

在我的情况下,一个简单的重新启动我的浏览器(铬) ,它工作后像魔术一样直接!


稍微了解一下上下文,我碰巧刷新了我的前端网页,然后马上对我的 API 做了一些修改,导致它重新启动。在那个实例中,前端调用了 API,由于 API 正在重新加载,导致“挂起”。浏览器此时缓存了该挂起状态。对我来说,要么设置 no-cache(我不想这么做) ,要么重新启动浏览器,我选择了重新启动。