新工人 vs navigator.serviceWorker

new Worker vs navigator.serviceWorker

new Worker()navigator.serviceWorker.register()有什么区别?

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

他们都创建了同一种 service worker 吗?

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

请不要投反对票,我打开了 50 多个与服务人员相关的标签页,感到不知所措和绝望,这整件事对我来说没有多大意义,不管(或者可能是因为)有很多可用的文档。

它们不一样。

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

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