服务人员可以优先考虑网络访问(即QoS)吗?

时间:2019-11-12 22:18:40

标签: javascript service-worker

我创建了一个JS库,该库可以在给定的URL下生成视频的PNG缩略图;全部在浏览器中。 例外效果很好,有时它需要获取10MB以上的数据才能生成缩略图。因此,这最终可能阻止对该源的任何其他客户端请求。

有没有一种方法可以优先使用服务工作者和/或流将“导航”请求优先于缩略图/视频请求?

我想在我的SPA中请求一个我想导航到的文档,其来源与缩略图发生的2个以上大型视频GET请求相同,而缩略图GET仍会发生导航请求请求仅在导航请求完成后才继续?基本上是一种非常简单的QoS(服务质量)形式。

1 个答案:

答案 0 :(得分:0)

我认为您无法做到。服务人员可能会通过拦截流来限制下载,但是仅此而已。在该层之下肯定会强制限制每个源的并发请求。您需要更改浏览器设置来避免这种情况。

但是,要允许导航,您可以尝试将大型下载分成多个小块,然后间歇地暂停并继续下载,从而导致大量较小的请求,而不会阻塞该来源。 HTTP range requests可以恢复下载-但只有在服务器支持的情况下。
我猜服务人员甚至可以透明地做到这一点。但是,正确的解决方案实际上是使用多个域(例如CDN)或修复浏览器实现。