我发现这个 repo 描述了 HOW to destroy a service worker .但是我没有找到任何描述 worker 何时应该销毁/卸载/注销自身的资源。
当我开发网站时,我经常使用端口 8080。我可以在有 service worker 的站点 X 上工作,然后在没有 service worker 但原来的和现在不正确的 service worker 的站点 Y 上工作。
Service Worker 决定自行卸载的逻辑有点棘手,因为我们想要:
是否有围绕此的标准机制或约定?
请您参考如下方法:
简单的答案是,通常它永远不会自我毁灭。
这对您来说似乎是个问题,因为您正在开发多个站点,然后将它们全部测试为 localhost:8080
.
他们是解决这个特定问题的几种方法:
第一个是为您在 /etc/hosts
中开发的每个站点设置别名。 .
127.0.0.1 local.site-a.com
127.0.0.1 local.site-b.com
另一种选择是在测试时将每个项目配置为在不同的端口上运行。
最后一个选项是在每个没有服务 worker 的项目中包含您在问题中链接到的代码。尽管这种方法理想情况下需要使您的构建过程仅将其包含在 Dev 构建中。