在Chrome上Ajax请求一直挂起

5
我在Chrome上遇到了随机问题(Linux上的v60.0.3112.101版本,但在其他系统上的生产环境中也被用户复制)。 有一个页面由歌曲列表组成,单击其中任何一个会触发ajax请求从服务器获取文件(以及其他内容)。
在一定数量的“点击”后(永远不是相同的数字,也不是相同的文件),应该获取资源的ajax请求将永远显示为“挂起”状态(我等待了30多分钟才完成)。

enter image description here

在开发者工具面板的“定时”选项卡中,请求显示为“停滞”,实际上,Nginx日志(我们将其用作反向代理)和后端应用程序本身都显示该请求从未到达服务器。

enter image description here

我已经尝试了几种方法,但都没有成功:

  • 禁用“预测服务以更快地加载页面”
  • 在每个请求中添加一个随机uuid,以确保不使用缓存
  • 更新jquery和soundmanager2(这是启动请求的库)
  • 使用没有扩展的Chrome启动

我还尝试从开发者工具控制台重新运行请求,但它仍处于挂起状态。

url = "/api/download/songs/7969/28962/28962_original.mp3?download_key=81b285e61f7880a0a07a977dbc47b78a1d57e3690263a646da65a261957f979a&r=" + Math.random();
$.get(url);

enter image description here

这个问题似乎在Firefox上没有发生。

不幸的是,我不能展示比这更多的代码。

这是Chrome已知的一个bug吗?有任何已知的解决办法吗?


1
我十分确定在Chrome上看视频时也遇到了同样的问题。我相信Chrome只允许每个域名有一定数量的服务线程用于媒体下载,而诀窍在于,如果您开始但未完成流媒体播放,它将继续占用该线程。对我来说,解决方案是向视频标签添加nonemetadata的预加载。您可能需要以某种方式停止已经在流式传输的内容。 - arbuthnott
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接