下图显示安装了两个工作人员 - 一个处于活动状态,另一个未处于活动状态(刚刚安装)。
service-worker.js
进行更改并重新加载页面。因此,使用新版本ID生成新的服务工作者。但为什么旧的一直在运行?以及如何关闭它?
sw.js
在这里https://gist.github.com/boopathi/57b7e8b6d657d55bdc7d
答案 0 :(得分:11)
默认情况下,在关闭/卸载由旧服务工作者控制页面的所有选项卡之前,旧服务工作程序将保持运行。新的服务工作者将会等待"等等。在"等待"状态。
有些选项可以更改此默认行为。他们是skipWaiting()
和clients.claim()
。
从安装服务工作者调用skipWaiting()
时,它会跳过"等待"状态并立即激活。但是,即使被激活,它也不一定会控制页面 - clients.claim()
将完成的任务。