问题描述
我制作了一个sw.js文件来缓存我的聊天网站,以便用户可以在脱机模式下打开,但是,Service Worker文件引起了很多问题,包括无法看到新消息和很多网站崩溃,因此我被迫删除它。遗憾的是,我目前的所有用户都无法手动删除缓存!注意我保留了sw.js文件,但现在为空,因此我可以编写任何代码来删除所有当前用户缓存吗?
我认为这不相关,但是我的应用使用的是Django
解决方法
要删除缓存,可以使用内置缓存API。
caches.keys().then(cacheNames => {
cacheNames.forEach(value => {
caches.delete(value);
});
})
从sw.js文件中删除内容还不够。如果已经安装并正在运行服务工作者,那么我建议您也“取消注册”。你可以这样 以编程方式使用以下代码。
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for(let registration of registrations) {
registration.unregister()
}
})
请注意,您只需在所有用户的浏览器中运行一次此代码即可。