异步请求引发的Chrome死锁

Posted 力为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步请求引发的Chrome死锁相关的知识,希望对你有一定的参考价值。

浏览器支持的并发异步请求数目是有限的,当需要的资源过多时候(远远大于并发数目),就需要自己管理XHR请求。


在实现自己的XHR的Manger时候,当请求数目达到2000多的时候,经常会遇到chrome的xhr状态为pending的情况。

开始猜测是不是因为请求的数目太多所致。于是测试顺序请求2000多的xhr,结果chrome正常工作。

检查自己的代码后发现,原来是存在同一资源同时请求的情况。在这种情况下会引发xhr死锁。


以上是关于异步请求引发的Chrome死锁的主要内容,如果未能解决你的问题,请参考以下文章

抓住异步编程async/await语法糖的牛鼻子

关于死锁的一些概念

并行 for 循环和 httpclient 死锁并引发异常

在for循环打字稿和nhibernate死锁中调用异步函数

在 for 循环打字稿和休眠死锁中调用异步函数

导致死锁的异步/等待示例