【问题标题】:Cache is being stored after second refresh第二次刷新后正在存储缓存
【发布时间】:2019-04-10 12:54:25
【问题描述】:

在我的服务人员注册后,在第二次重新加载时,我可以缓存我想要做的响应,而无需第二次刷新,

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

即使在使用 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】:

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

    【讨论】:

    • 感谢@abraham 的回复,但是在我重新加载我不想要的页面后,我的 API 响应被缓存了
    猜你喜欢
    • 1970-01-01
    • 2011-11-06
    • 2019-06-17
    • 1970-01-01
    • 2011-08-06
    • 2017-05-31
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多