微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以从新员工中检测到现有服务人员的存在?

如何解决是否可以从新员工中检测到现有服务人员的存在?

我有一个复杂的服务人员。安装时,其初始设置行为需要更改,具体取决于是否已经有其他服务工作人员作为原始服务器。

是否有可能最好在install事件期间从服务人员内部检测到另一个服务人员是否已处于活动状态?

页面上下文中,看来我可以使用navigator.serviceWorker.getRegistrations(),但是navigator.serviceWorker在服务工作者内部是未定义的。

解决方法

假设您在两次部署之间不更改服务工作者的URL或范围,则应该能够从self.registration获取该信息。

self.addEventListener('install',(event) => {
  const {installing,waiting,active} = self.registration;

  // Since we're in the install handler,`installing` should
  // be set to the SW whose global state is `self`.

  // `waiting` is likely to be `null`,unless there happened to be a SW
  // that was waiting to activate at the point this SW started install.

  // `active` is what you're most interested in. If it's null,then there
  // isn't already an active SW with the same registration info.
  // If it's set to a SW,then you know that there is one.
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。