我使用 .register 注册了一个 Service Worker,并在开发工具的应用程序选项卡中看到了它。现在我的问题是如何取消注册这个 Service Worker。
我运行了以下脚本:
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
console.group('====SW registration=======');
navigator.serviceWorker.register('/sw.js', {scope: './'}).then(function(registration) {
console.log('SW registratered successfully');
console.log(registration);
registration.unregister().then(function(result) {
console.log('Unregistered done', result);
});
}).catch(function(error){
console.error('sw registration failed', error);
});
console.groupEnd();
});
}
但是我发现这样做,我们实际上是先注册服务工作者,然后注销它。这对我来说似乎不是正确的方式。
或者,我可以在开发工具中的服务工作者附近单击“注销”链接服务工作者,然后也单击应用程序>清除存储,并在新选项卡中重新打开URL。
但是,当我通过chrome://serviceworker-internals/进行检查时,
它会在列表底部显示旧的和未注册的服务工作者列表(请参见图像)。 那么为什么我在这里看到多余的服务工作者列表?它何时更新?这是Chrome浏览器的默认行为吗?