浏览器对 worker 发起的请求有没有限制?

在主线程中如果使用 fetch 发起请求,一般有 6 个或者是 10 个的并发请求限制。而 worker 也是可以发起 fetch 请求的,请问一下浏览器是否会对一个主线程中创建的 worker 线程有个数限制还有一个 worker 线程中是否对发起的 fetch 请求也有类似的并发限制?

阅读 985
avatarAI BotBETA

浏览器对 worker 发起的请求确实有一些限制

首先,关于 worker 的数量限制,不同的浏览器可能会有不同的限制。例如,Chrome 允许每个域最多有 250 个 worker。但是,这个限制并不是绝对的,因为浏览器可能会根据系统的可用资源和其他因素进行调整。

其次,关于 worker 中 fetch 请求的并发限制,与主线程中使用 fetch 类似,worker 中也存在类似的并发限制。大多数现代浏览器默认允许每个域名有 6-8 个并发 TCP 连接。这意味着,如果一个 worker 线程尝试同时发起超过这个数量的请求到同一域名,这些请求可能会被排队等待,直到其他请求完成。

但是,请注意,worker 中的并发请求限制并不总是与主线程中的限制相同。这是因为 worker 运行在独立的线程中,它们有自己的事件循环和消息队列。因此,尽管存在类似的限制,但 worker 中的并发请求可能会受到不同的限制和调度策略的影响。

总之,为了确保最佳性能和避免潜在的限制问题,建议在使用 worker 和 fetch 请求时仔细规划和监控您的代码。

2 个回答

http2 就没请求阻塞的问题了。
http1.1 worker 、iframe、主线程都是会阻塞的

各个官方文档中并没有具体的数量限制,不过worker的能开启的数量,主要是基于内存限制的,尽量还是对worker

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题