问题描述
即使有新版本,浏览器上的缓存也不会删除。
我的registerSW.js:
async function registerSW() {
if ('serviceWorker' in navigator) {
try {
await navigator.serviceWorker.register('/sw.js');
} catch (e) {
alert('ServiceWorker registration Failed. Sorry about that.');
console.log(e);
}
} else {
document.querySelector('.alert').removeAttribute('hidden');
}
}
if ('serviceWorker' in navigator) {
window.addEventListener('load',e => {
registerSW();
});
}
sw.js:
myCacheVer = 'v-01';
myCache = 'appname-' + myCacheVer;
if (workBox) {
console.log('[ServiceWorker] Activate');
caches.keys().then(function (keyList) {
return Promise.all(keyList.map(function (key) {
if (!key.includes(myCacheVer)) {
console.log('[ServiceWorker] User - Removing old cache',key);
return caches.delete(key);
}
}));
})
workBox.setConfig({
clientsClaim: true,debug: true,skipwaiting: true
});
workBox.core.setLogLevel(workBox.core.LOG_LEVELS.warn);
. . . .
如果更改版本号,WorkBox仍将使用旧版本(例如,创建新的缓存数据等)。如果我打开“开发工具”>“应用程序”,然后单击一个链接,那是WorkBox创建新缓存并删除旧缓存的时间。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)