резервный кеш сервисного работника к сети - PullRequest
0 голосов
/ 17 января 2020

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)
        })
    )
})
...