Кэш сохраняется после второго обновления

#progressive-web-apps #workbox

#progressive-web-apps #workbox

Вопрос:

После того, как мой сервисный работник зарегистрировался, при второй перезагрузке я могу кэшировать ответ, который я хочу сделать без второго обновления ,

Я использую Workbox версии 3, даже после использования workbox.core.skipWaiting и workbox.core.clientsClaim, я не могу кэшировать свои данные, я новичок в Progressive web app и service worker, мы будем признательны за любую помощь, ниже приведены мои фрагменты кода для service worker —

Даже после использования workbox.core.skipWaiting и workbox.core.clientsClaim я не могу кэшировать свои данные при загрузке в первый раз-

Мой сервисный работник —

 importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js');
workbox.routing.registerRoute(
    new RegExp('My URL from where I want to cache the response'),
    new workbox.core.skipWaiting(),
    new workbox.core.clientsClaims(),
    new workbox.strategies.CacheFirst()

);
  

Мой файл worlnox-config —

 module.exports = {
  "globDirectory": "build/",
  "globPatterns": [
    "**/*.{json,ico,html,js,css}"
  ],
  "swDest": "./build/sw.js",
  "swSrc" : "./src/sworker.js"
};
  

При загрузке страницы я хочу кэшировать свой ответ API без перезагрузки.

Ответ №1:

Так ведут себя работники служб. Сервисный работник устанавливается, но не читается, поскольку загружаются и отображаются другие ресурсы, поэтому у сервисного работника нет возможности обрабатывать и кэшировать ресурсы. Если вы хотите, чтобы ресурсы были кэшированы без последующей навигации, вы должны указать Workbox предварительно кэшировать ресурсы. Это подскажет сотруднику службы загружать и кэшировать ресурсы после установки без запроса клиентом каких-либо дополнительных запросов.

Комментарии:

1. Спасибо за ответ @abraham, но мой ответ API кэшируется после перезагрузки страницы, которая мне не нужна в моем случае