两个服务人员同时工作

时间:2017-01-20 08:17:24

标签: javascript service-worker progressive-web-apps

我想在我的网站上使用两个服务工作者:一个用于为我的PWA提供经典的脱机缓存(/sw.js),另一个用于提供本地数据库"服务器&#34之类的东西;它使用后台同步和推送(/sw-db.js)。由于后者倾向于做繁重的工作(阻止事件循环几毫秒),最好将它分开。

由于数据库sw不用于获取请求,我会给它一个虚拟范围,而sw.js的范围是整个域。

第一个响应" fetch"事件,还提供/sw-db.js的代码/ URL(保持有点与网站更新同步)或服务工作者始终通过网络更新。

1 个答案:

答案 0 :(得分:1)

当您需要检查更新时,将始终绕过任何其他服务工作人员提取您传递到%timeit的{​​{1}}脚本网址。因此,要回答您的问题,将不会触发其他服务工作者的%timeit处理程序。

每当对服务工作者脚本进行更新检查时,

HTTP cache does come into play。因此,您应该确保为您的用例设置正确的HTTP缓存控制标头。

通常,由于导航到由服务工作者控制的页面而触发服务工作者更新检查,但如果您的服务工作者具有“虚拟”范围,则它不会最终控制任何页面。话虽这么说,当服务工作者处理sw.jsnavigatior.serviceWorker.register('/path/to/sw.js')事件时,您最终也会触发更新检查。我不确定每个fetchsync是否会触发检查,或仅触发其中的一部分,例如导致新服务工作者生成的检查。但它至少会在某些时候发生。

相关问题