缓存在第二次刷新后被存储

时间:2019-04-10 12:54:26

标签: progressive-web-apps workbox

我的服务工作者注册后,在第二次重新加载时,我无需第二次刷新就可以缓存要执行的响应,

我正在使用Workbox版本3, 即使使用了workbox.core.skipWaiting和workbox.core.clientsClaim之后,我也无法缓存数据,我是Progressive Web应用程序和服务工作者的新手,我们将不胜感激,以下是服务工作者的代码段-

即使使用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 个答案:

答案 0 :(得分:1)

这是服务人员的行为。服务工作者正在安装但由于其他资产正在下载和呈现而无法读取,因此服务工作者无法处理和缓存资源。如果要在不进行后续导航的情况下缓存资产,则需要tell Workbox to precache资产。这将告诉服务人员在安装后下载并缓存资产,而无需客户端询问任何其他请求。