我的服务工作者注册后,在第二次重新加载时,我无需第二次刷新就可以缓存要执行的响应,
我正在使用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响应。
答案 0 :(得分:1)
这是服务人员的行为。服务工作者正在安装但由于其他资产正在下载和呈现而无法读取,因此服务工作者无法处理和缓存资源。如果要在不进行后续导航的情况下缓存资产,则需要tell Workbox to precache资产。这将告诉服务人员在安装后下载并缓存资产,而无需客户端询问任何其他请求。