没有任何安装,我可以将 Service Worker 用作更持久的 Web Worker 吗?
Posted
技术标签:
【中文标题】没有任何安装,我可以将 Service Worker 用作更持久的 Web Worker 吗?【英文标题】:Without any installs, can I just use a Service Worker as more persistent Web Worker? 【发布时间】:2020-07-19 03:12:09 【问题描述】:我想要的只是一个由所有选项卡共享的单个 Web Worker,不会被页面重新加载等中断。我可以简单地使用 Service Worker 作为替代品来完成此任务吗?我不关心缓存或网络,只关心消息传递(通过onmessage
)将某些计算卸载到后台进程,也许还会发出通知。
抱歉,这是一个简单的问题。我所看到的只是关于缓存和网络的教程,涉及安装等。
【问题讨论】:
您可以将其卸载到服务器并使用套接字与各个选项卡进行通信吗? 我并不是想让我的各种标签进行通信。只是我想要它,以便所有选项卡都不会打开超过 1 个工作人员。另外,我希望一切都在本地运行,而不是在服务器上。最后,我想要的主要是通过页面重新加载实现持久性(网络工作者和共享工作者没有)。 【参考方案1】:这听起来更像是 SharedWorker 的工作,即使对于“通知”的事情,如果它确实只是你的标签一起通信的一种方式,那么你可以使用 @987654322 更轻松地完成它@。
【讨论】:
SharedWorkers 不会通过重新加载/刷新 (***.com/a/11906338/1114253) 持续存在,这是我想使用 service worker 的主要原因。另外,我并不是要让选项卡进行通信,我只想让一个工作人员运行,无论打开多少个选项卡。 只要上下文使它们保持活动状态,它们就会这样做,例如 ServiceWorker's context 如果您需要持久化数据,则使用 localStorage 或 IndexedDB 谢谢,这很有启发性。因此,如果我在 Shared Worker 中使用setInterval
,只要至少有 1 个选项卡让该 Worker 存活,它就会继续运行,是吗?此外,持久数据不是我的问题。我只是想制作一个渐进式网络应用程序,并希望一些工作人员始终在后台做某事。以上是关于没有任何安装,我可以将 Service Worker 用作更持久的 Web Worker 吗?的主要内容,如果未能解决你的问题,请参考以下文章
切换到任何CPU配置后,Win Service项目将不会构建
将NodeJ部署到Service Fabric Cluster