new Worker vs navigator.serviceWorker

时间:2018-06-14 11:32:54

标签: javascript service-worker pwa

new Worker()navigator.serviceWorker.register()之间的区别是什么?

var myWorker = new Worker('service-worker.js', {});

他们俩都只创建了同一种服务工作者吗?

navigator.serviceWorker.register('service-worker.js').then(()=>{})

请不要downvote,我有50多个标签打开与服务工作者相关的日子,感到不知所措和绝望,这整件事对我来说没有多大意义(或者可能是由于)大量可用的文档。

1 个答案:

答案 0 :(得分:1)

它们不一样。

new Worker()创建Web Worker。这是一个单独的线程和执行上下文,但它仍然与当前页面会话相关联,并将在用户离开页面时终止。

Service Workers在与Web Workers类似的环境中运行(它们共享一些API),但没有连接到特定的页面会话,并在后台短暂运行以响应其关联站点上的网络事件。 / p>