Как принудительно обновить рабочий файл сервиса в Google Devtools? - PullRequest
0 голосов
/ 30 июня 2019

Я попытался перезагрузить новый файл Service Worker, но он не загрузился автоматически.Я установил флажок «Обновлять при перезагрузке» на вкладке «Приложение» devtools и отключил кэш на вкладке «Источники».

Я использую версию Chrome «75.0.3770.100».

Единственный способ заставить его работать, это снова проверять и снимать флажки, а другой - нажимать на "skipWaiting"

Есть ли что-то, чего мне не хватает или флажки следует включить?

Спасибоза помощь!

1 Ответ

0 голосов
/ 03 июля 2019

Если вы видите опции skipWaiting в Devtools, это потому, что вы не вызываете self.skipWaiting () в событии установки. Обычно новый обновленный сервисный работник ждет, пока старая версия не контролирует никаких клиентов. Self.skipWaiting () предотвращает это ожидание. Вот пример.

//This is the install event listener
self.addEventListener("install", (event) => {
    console.log(self);
    event.waitUntil(
        caches.open(CACHE_NAME).then(cache => {
            cache.addAll(STATIC_ASSETS).then(() => {
                    self.skipWaiting();
                }).catch(error => {
                    logForDevelopment("An error occured while adding static assets to the cache", true);
                    logForDevelopment(error, true);
                })
        })
    );
    logForDevelopment("Service Worker: Installed");
});
...