Кеш хранится после второго обновления - PullRequest
0 голосов
/ 10 апреля 2019

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

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

Даже после использования 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 -

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

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

1 Ответ

1 голос
/ 14 апреля 2019

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

...