Я некоторое время использую Service Worker со следующим кодом в моем sw.js.
var cacheName = 'myCache';
var filesToCache = [
'/',
'build/css/stylesheet.css',
'build/js/bundle-min.js'
];
self.addEventListener('install', function(e) {
console.log('[ServiceWorker] Install');
e.waitUntil(
caches.open(cacheName).then(function(cache) {
console.log('[ServiceWorker] Caching app shell');
return cache.addAll(filesToCache);
})
);
});
self.addEventListener('activate', function(e) {
console.log('[ServiceWorker] Activate');
e.waitUntil(
caches.keys().then(function(keyList) {
return Promise.all(keyList.map(function(key) {
if (key !== cacheName) {
console.log('[ServiceWorker] Removing old cache', key);
return caches.delete(key);
}
}));
})
);
return self.clients.claim();
});
self.addEventListener('fetch', function(e) {
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
Проблема, связанная со следующим фрагментом, заключается в том, что, как только я добавляю файлы в FilesToCache Array (Precache), например, мой '/', направляет мою домашнюю страницу веб-приложения, тогда любые изменения в содержимом домашней страницы не отражаются, если я не выполню жесткое обновление?
Я добавляю маршрут '/' в предварительное кэширование вместе с моим JS-файлом в комплекте, так как мне нужна быстрая / автономная поддержка моей домашней страницы.
Что я делаю неправильно? Как я могу изменить это поведение?
Заранее спасибо
Привет