Google chrome devtools 如何注销和删除旧的服务人员?
我已经使用.register注册了一个服务工作器,可以在开发工具的应用程序选项卡中看到。现在我的问题是如何注销此服务人员 我已经运行了这个脚本Google chrome devtools 如何注销和删除旧的服务人员?,google-chrome-devtools,service-worker,Google Chrome Devtools,Service Worker,我已经使用.register注册了一个服务工作器,可以在开发工具的应用程序选项卡中看到。现在我的问题是如何注销此服务人员 我已经运行了这个脚本 if ('serviceWorker' in navigator) { window.addEventListener('load', function() { console.group('====SW registration======='); navigator.se
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();
});
}
但我看到,通过这样做,我们实际上是先注册服务人员,然后注销它。对我来说,这似乎不是正确的方法
或者,我可以单击dev tools Application>service Workers中服务人员附近的注销链接,还可以单击Application>Clear Storage并在新选项卡中重新打开URL
但是当我通过chrome://serviceworker-internals/
它在列表底部显示旧的和未注册的服务人员列表(见图)
那么为什么我会在这里看到冗余服务人员列表呢?什么时候更新?这是否是chrome浏览器的默认行为。您应该指定取消注册服务人员的原因 我认为有两种可能性:
- 您希望删除/service-worker.js文件并完全删除软件
- 您希望有一个新的/更新的软件并替换以前的软件
我非常小心地强调,因为软件相关的东西很容易出错,并完全破坏你的网站:)下面的链接可能会帮助你解决问题 堆栈溢出链接: 链接: 如果要更新服务人员代码,请使用 下面的代码将删除service worker(注销它)
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations()
.then(function(registrations) {
for(let registration of registrations) {
if(registration.active.scriptURL == 'http://localhost/my-push/myworker.js'){ registration.unregister(); }
}
});
}