我在使用 Chrome 时遇到了一个随机问题(Linux 上的 v60.0.3112.101,但最终用户在其他系统上的生产环境中也出现了这个问题)。 有一个包含歌曲列表的页面,点击其中任何一首都会触发 ajax 请求以获取服务器上的文件(以及其他内容)。
在一定数量的“点击”之后(从来没有相同的数字,从来没有在同一个文件上),应该获取资源的 ajax 请求永远显示为“待处理”(我已经等了 30 多分钟它完成)。
在开发人员工具面板的“时间”选项卡中,请求显示为“停滞”,事实上,Nginx 日志(我们将其用作反向代理)和后端应用程序本身显示请求永远不会到达服务器。
我试过很多东西都没有成功:
- 禁用“预测服务以更快地加载页面”
- 为每个请求添加一个随机 uuid 以确保不使用缓存
- 更新 jquery 和 soundmanager2(启动请求的库)
- 在没有扩展的情况下启动 Chrome
我还尝试从 Developer Tools 控制台重新运行请求,但它也处于待处理状态。
url = "/api/download/songs/7969/28962/28962_original.mp3?download_key=81b285e61f7880a0a07a977dbc47b78a1d57e3690263a646da65a261957f979a&r=" + Math.random();
$.get(url);
这个问题在 Firefox 上似乎没有发生。
很遗憾,我无法向您展示比这更多的代码。
这是 Chrome 的已知错误吗?是否有任何已知的解决方法?
最佳答案
您似乎已达到 Chrome 中的最大 http 连接数。这里有很多与该领域相关的帖子。 这篇文章可能对你有帮助 How to solve Chrome's 6 connection limit when using xhr polling
关于javascript - Ajax 请求在 Chrome 上永远挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45815882/