new Worker()
和navigator.serviceWorker.register()
之间的区别是什么?
var myWorker = new Worker('service-worker.js', {});
他们俩都只创建了同一种服务工作者吗?
navigator.serviceWorker.register('service-worker.js').then(()=>{})
请不要downvote,我有50多个标签打开与服务工作者相关的日子,感到不知所措和绝望,这整件事对我来说没有多大意义(或者可能是由于)大量可用的文档。
答案 0 :(得分:1)
它们不一样。
new Worker()
创建Web Worker。这是一个单独的线程和执行上下文,但它仍然与当前页面会话相关联,并将在用户离开页面时终止。
Service Workers在与Web Workers类似的环境中运行(它们共享一些API),但没有连接到特定的页面会话,并在后台短暂运行以响应其关联站点上的网络事件。 / p>