反正有删除我的用户缓存吗?

问题描述

我制作了一个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()
    } 
})

请注意,您只需在所有用户的浏览器中运行一次此代码即可。