새 캐시 이름 당신이 당신의 웹 사이트의 새로운 버전을 배포 할 때마다 정의하여이를 얻을 수 있습니다
//change cache name with each deploy
var staticCacheName = 'NewWithEachDeploy';
self.addEventListener('install', function (event) {
event.waitUntil(
caches.open(staticCacheName).then(function (cache) {
return cache.addAll([
'index.html',
'...'
]);
})
);
});
그런 다음에 모든 이전 캐시를 삭제 활성화하십시오.
self.addEventListener('activate', function (event) {
event.waitUntil(caches.keys().then(function (keyList) {
return Promise.all(keyList.map(function (cacheKey) {
//delete all caches which do not equal with the current cache name (staticCacheName)
if (cacheKey !== staticCacheName) {
console.log('[ServiceWorker] Removing old cache', cacheKey);
return caches.delete(key);
}
}));
}));
});
이렇게하면 모든 리소스가 한 번에 업데이트됩니다. 그렇지 않으면 문제가 생길 수 있습니다. 예를 들어 캐쉬 된 HTML은 최신 버전으로 업데이트되지만 JS 파일은 여전히 오래된 것으로 별자리가 잘 어울리지 않을 수 있습니다.