如何阻止老年服务工作者?

Boo*_*jaa 6 service-worker

下图显示安装了两个工作程序 - 一个处于活动状态,另一个未处于活动状态(刚刚安装).

两名服务人员正在运行

  1. 注册服务工作者
  2. service-worker.js对页面进行更改并重新加载.
  3. 逻辑是服务工作者检查二进制差异并更新工作者的版本.

因此,使用新版本ID生成新的服务工作者.但为什么旧的一直在运行?以及如何关闭它?

sw.js这里https://gist.github.com/boopathi/57b7e8b6d657d55bdc7d

Jef*_*ick 11

默认情况下,在关闭/卸载由旧服务工作者控制页面的所有选项卡之前,旧服务工作程序将保持运行.新的服务工作者将在"等待"状态下"等待".

有些选项可以更改此默认行为.他们是skipWaiting()clients.claim().

skipWaiting()从一个安装服务人员调用,它将,好,跳过"等待"状态,并立即激活.然而,尽管被激活,它不一定会控制页面 - 这clients.claim()将是完成的.