3 回答
TA贡献1848条经验 获得超10个赞
您的代码看起来已经不错了。就我而言,我使用以下代码删除 SW 缓存:
if ('caches' in window) {
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames.filter(cacheName => {
// You can have some custom logic here, if you want
// to delete only some caches
// If you return TRUE, the cache will be deleted
}).map(cacheName => {
return caches.delete(cacheName);
})
);
})
}
该caches.keys()方法返回 CacheStorage 的键,该接口表示 Service Worker 可以访问的 Cache 对象的存储。
TA贡献1946条经验 获得超3个赞
试试这个:
self.addEventListener( "activate", event => {
event.waitUntil(
//wholesale purge of previous version caches
caches.keys().then( cacheNames => {
cacheNames.forEach( value => {
caches.delete( value );
} );
} );
} );
TA贡献1798条经验 获得超7个赞
不是专家,但我认为使用这样的过滤器会起作用。
cacheNames.filter(cacheName => {
if (cacheWhitelist.indexOf(cacheName) === -1) {
return caches.delete(cacheName);
}
添加回答
举报