【发布时间】:2018-03-07 13:18:00
【问题描述】:
我已经使用 .register 注册了一个服务唤醒器,并且可以在开发工具的应用程序选项卡中看到。现在我的问题是如何取消注册这个服务工作者。
我已经运行了这个脚本
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();
});
}
但我看到这样做,我们实际上是先注册服务工作者,然后再取消注册。这对我来说似乎不是正确的方法。
或者,我可以从开发工具 Application > Service Worker 中点击 Service Worker 附近的 unregister 链接,然后点击 Application >Clear Storage em> 并在新标签页中重新打开 URL。
但是当我检查 chrome://serviceworker-internals/
它在列表底部显示旧的和未注册的服务人员列表(见图)
那么为什么我会在这里看到冗余服务人员列表?什么时候更新?这是chrome浏览器的默认行为吗。
【问题讨论】:
标签: google-chrome-devtools service-worker