阅读许多教程之后,我创建了该教程,该教程self.skipWaiting()
用于立即将更新应用于现有的serviceWorker,并self.clients.claim()
用于在第一次加载时立即进行控制。
self.addEventListener('install', function(event) {
event.waitUntil(self.skipWaiting());
});
self.addEventListener('activate', function(event) {
event.waitUntil(self.clients.claim());
});
它是查找每个请求的更新还是在内部如何工作?使用的self.clients.claim()
并self.skipWaiting()
为负载或服务工作者性能产生任何影响?
从性能角度来看没有影响。
双方self.skipWaiting()
并self.clients.claim()
采取一些行动,并在同一时间,立即与解决工作undefined
值。
在的情况下self.skipWaiting()
,所采取的操作实际上只是在翻转内部标志并使服务工作者尝试激活。在的情况下self.clients.claim()
,操作是遍历所有客户端,并尝试让当前执行的服务工作者获得控制权。
这两种方法返回的实际诺言都是无关紧要的,并且您不必将它们包装起来event.waitUntil()
(尽管这没有什么坏处,并且许多使用服务工作者的例子仍在这样做)。
此外,由于您的代码仅在install
和activate
侦听器内部调用这些方法,因此有问题的代码甚至在服务工作者线程启动的大部分时间甚至都不会执行-仅当有更新的服务工作者时。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句