第二次刷新后存储缓存

问题描述 投票:0回答:1

我的服务工作者注册后,在第二次重新加载时,我能够缓存我想要做的响应,而无需第二次刷新,

我正在使用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响应而不重新加载。

progressive-web-apps workbox
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.