Сервисный работник не удаляет кешированные файлы (иногда) - PullRequest
0 голосов
/ 18 июня 2020

Я использую сервис-воркер с подходом «сначала оффлайн». Если файл присутствует в локальном кеше, он загружается, если нет - он загружается из сети.

Когда я хочу обновить свои файлы (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);
            }
        }));
    })
); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...