Я пытаюсь установить ServiceWorker
, который очищает кеш при каждом изменении текущей используемой версии кеша.
У меня index.html
кешируется в кеше v0.0.1
, если версия кешаменяется на v0.0.2
или что-то еще, он должен перезагружаться index.html
.
Я загружаю ServiceWorker
с помощью:
if('serviceWorker' in navigator){
navigator.serviceWorker
.register('serviceWorker.js')
.then(() => {
console.log('Service Worker Registered');
});
}
А вот:
serviceWorker.js
const currentVersion = 'v0.0.1';
self.addEventListener('install', e => {
e.waitUntil(
caches.open(currentVersion).then(cache => cache.addAll([
'',
'index.html',
'js/load.min.js',
'lib/db.js/js/db.min.js'
]))
);
});
self.addEventListener('fetch', e => {
e.respondWith(
caches.match(e.request).then(resp => {
return resp || fetch(e.request).then(response => {
return caches.open(currentVersion).then(cache => {
cache.put(e.request, response.clone());
return response;
});
});
})
);
});
self.addEventListener('activate', e => {
e.waitUntil(
caches.keys().then(keyList =>
Promise.all(keyList.map(key => key != currentVersion ? caches.delete(key) : Promise.resolve()))
)
);
});
Но я попытался отредактировать index.html
и обновить версию serviceWorker
, но файл index.html
не изменился.Всегда отображается первая версия.
Что я делаю не так?