我的服务工作者注册后,在第二次重新加载时,我能够缓存我想要做的响应,而无需第二次刷新,
我正在使用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响应而不重新加载。
这就是服务工作者的行为方式。服务工作者正在安装但未读取,因为正在下载和呈现其他资产,因此服务工作者无法处理和缓存资源。如果您希望在没有后续导航的情况下缓存资产,则需要tell Workbox to precache资产。这将告诉服务工作者在安装后下载和缓存资产,而客户端不会询问任何其他请求。