我已将 PWA 功能和 service worker 添加到我的 angular 网站。发布到实时服务器后,许多用户开始遇到问题,例如:“无法访问此站点”,但是当用户单击 CTRL+ F5 时,它可以正常工作。
为了立即解决,我已经从我的版本中删除了 PWA 和 service worker。尽管如此,许多用户都面临着同样的问题或来自 Service Worker 的“未找到索引页面”错误。
如何从最终用户的浏览器中删除或取消注册旧的 Service Worker?
我尝试使用此代码删除服务工作者缓存:
if ('caches' in window) {
caches.keys()
.then(function(keyList) {
return Promise.all(keyList.map(function(key) {
return caches.delete(key);
}));
})
}
Run Code Online (Sandbox Code Playgroud)
为了删除服务工作者,我添加了以下内容:
if(window.navigator && navigator.serviceWorker) {
navigator.serviceWorker.getRegistrations()
.then(function(registrations) {
for(let registration of registrations) {
registration.unregister();
}
});
}
Run Code Online (Sandbox Code Playgroud)