Я использую сервис-воркер с подходом «сначала оффлайн». Если файл присутствует в локальном кеше, он загружается, если нет - он загружается из сети.
Когда я хочу обновить свои файлы (CSS, jS), я меняю службу рабочая версия. После активации сервисный работник проверяет, отличается ли имя кеша, и, если да, он удаляет старый кеш. удалено , и работник службы по-прежнему обслуживает старую версию.
Я не использую заголовки кеша для файлов , это может быть вызывая проблему?
Можно ли использовать другой код для удаления файлов?
См. мой код ниже.
self.addEventListener('activate', function(e) {
console.log('[ServiceWorker] Activated');
send_message_to_all_clients(cacheName);
e.waitUntil(
// Get all the cache keys (cacheName)
caches.keys().then(function(cacheNames) {
return Promise.all(cacheNames.map(function(thisCacheName) {
// If a cached item is saved under a previous cacheName
if (thisCacheName !== cacheName) {
// Delete that cached file
console.log('[ServiceWorker] Removing Cached Files from Cache - ', thisCacheName);
return caches.delete(thisCacheName);
}
}));
})
);