首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个服务工作人员重新划分时的navigator.serviceWorker

问多个服务工作人员重新划分时的navigator.serviceWorker
EN

Stack Overflow用户
提问于 2017-01-16 05:13:48
回答 1查看 2.5K关注 0票数 7

我一直在为web签出推送通知,并运行了以下代码片段

navigator.serviceWorker

如果有多个服务工作者,这是如何解决的呢?它还回上一名注册服务人员吗?

这份文件对我来说不太清楚。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 21:30:50

杰克·阿奇博尔德的"服务工作者生命周期“是一个很棒的资源,如果你还没读过,我建议你这么做。

每个服务工作者都有自己的作用域。默认情况下,在最允许的情况下,作用域与服务工作者脚本所使用的目录相同。如果需要,您可以在调用navigator.serviceWorker.register()时传递一个限制性更强的范围。

可以为给定的来源注册具有不同范围的多个服务工作者。(旁白:如果尝试为给定的来源注册具有相同范围的多个服务工作者,即使服务工作者有不同的网址,随后的注册将被视为服务工作者更新,而不是单独注册。)

如果注册了多个服务工作人员,则为了确定哪一个控制给定客户端页,将检查作用域。服务工作者最具体是最长的匹配范围,它将控制给定的客户端页面。

因此,例如,给定以下两个具有相应作用域的服务工作者注册:

  • SW 1:/path/to/sw.js,在/path/to/范围注册
  • SW 2:/path/to/subdir/sw.js,在/path/to/subdir/范围注册

如果客户端页面的URL是/path/to/index.html,那么SW 1将控制客户机,因为/path/to/是最长的匹配范围。

如果客户端页面的URL为/path/to/subdir/index.html,则SW 2将控制客户端。即使SW 1的范围匹配,SW 2的范围也匹配,而SW 2的范围更具体/更长。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41669835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档