服务工作者何时应自毁?



我找到了这个描述如何销毁服务工作者的存储库。但是我没有找到任何描述工人何时应该销毁/卸载/注销自己的资源。

当我开发网站时,我经常使用端口 8080。我可以在具有服务工作线程的站点 X 上工作,然后在没有服务工作线程的站点 Y 上工作,但原始的和现在不正确的服务工作线程仍然存在。

服务工作者决定卸载自身的逻辑有点棘手,因为我们想要:

  • 允许服务工作进程脱机工作。
  • 允许服务工作者在强制 wifi 门户中幸存下来。
  • 检测浏览器是否联机,但此站点不应具有服务工作进程,或者服务工作进程应为其他服务工作进程。

是否有围绕此的标准机制或公约?

简单的答案是,通常它永远不会自我毁灭。

这对您来说似乎是一个问题,因为您正在开发多个站点,然后将它们全部作为localhost:8080进行测试。

它们是解决此特定问题的几种方法:

首先是为您在/etc/hosts中开发的每个站点设置别名。

127.0.0.1  local.site-a.com
127.0.0.1  local.site-b.com

另一种选择是在测试时将每个项目配置为在不同的端口上运行。

最后一个选项是将您链接到的代码包含在问题中,在每个没有服务工作者的项目中。尽管这种方法理想情况下需要使构建过程仅将其包含在开发构建中。

您必须在ServiceWorker 中注册一个JavaScript文件,该文件在运行javascript文件之前会检查站点X的本地路径。

navigator.serviceWorker.register('/checking.js').then(function(registration) {
// Registration was successful
}

在检查中.js

if(window.location.href == "YOUR X SITE FILE PATH"){
//Run the javascript file which you have created for site X 
}

请记住,在生产过程中,您必须将 serviceWorker(( 的参数更改为相应的 js 文件

相关内容

  • 没有找到相关文章

最新更新