我发现这个 repo 描述了 HOW to destroy a service worker .但是我没有找到任何描述 worker 何时应该销毁/卸载/注销自身的资源。

当我开发网站时,我经常使用端口 8080。我可以在有 service worker 的站点 X 上工作,然后在没有 service worker 但原来的和现在不正确的 service worker 的站点 Y 上工作。

Service Worker 决定自行卸载的逻辑有点棘手,因为我们想要:

  • 允许 service worker 离线工作。
  • 允许服务人员在强制 wifi 门户中生存。
  • 检测浏览器在线,但该站点不应该有 service worker,或者 service worker 应该是不同的。

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

    请您参考如下方法:

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

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

    他们是解决这个特定问题的几种方法:

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

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

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

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


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!