Service Worker
, хотя версия кэша работника службы изменилась, файлы. js и. css в кэше браузера не обновляются, если не очистить их вручную !!!
Я использую откат кеша для сетевой стратегии
. Помогите, пожалуйста, решению сделать это программно
работник службы
//cache version
var apbcw_cache = "APBCW - 1.9";
// files to cache
var filesToCache = [
'pwa.html',
'assets/mountains.png',
'assets/camera.png',
'css/pwa.css',
'js/pwa.js',
'js/network.js',
'js/iDBconn.js',
'js/jquery-3.4.1.min.js',
'js/manifest.json',
'assets/icons/android-icon-144x144.png',
'assets/icons/apple-icon-144x144.png',
'assets/icons/ms-icon-144x144.png'
];
//install Service Worker
self.addEventListener('install',function(event){
console.log('Service Worker installed', event);
event.waitUntil(
caches.open(apbcw_cache)
.then(function(cache){
console.log("caching files");
return cache.addAll(filesToCache);
}).catch(function(error){
console.error("Error adding files to cache",error);
})
)
self.skipWaiting();
});
// activate Service Worker
self.addEventListener('activate', function(event){
console.log('Service Worker activated',event);
console.log('cache version: ',apbcw_cache);
event.waitUntil(
caches.keys()
.then(function(keyList){
return Promise.all(keyList.map(function(key){
if(key !== apbcw_cache){
console.log("deleting old cache:", key);
return caches.delete(key)
}
}));
})
);
return self.clients.claim();
});
//fetch event
self.addEventListener('fetch',function(event){
console.log("Service Worker is fetching" + event.request.url);
event.respondWith(
caches.match(event.request)
.then(function(response){
return response || fetch(event.request)
})
)
})