#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 кэшируется после перезагрузки страницы, которая мне не нужна в моем случае