如何解决Workbox 预缓存:基于用户类型
我不想为所有用户预缓存,而只想为成员预缓存。我想这样做是为了避免服务器上不必要的负载以及为一次性访问者进行不必要的缓存。
所以当访问者登录时,我向服务工作者发送消息。在服务工作者的以下代码段中,“收到的消息”记录在控制台中。但是图像没有被缓存。并且没有错误信息。
如果我直接将 precacheAndRoute(images)
放在 const images = [....];
下方,那么图像会被正确缓存。
我是 Service Worker 的新手。非常感谢任何帮助。
const images = [....];
addEventListener('message',(event) => {
if (event.data.type === 'cacheImages') {
console.log('Message Received');
precacheAndRoute(images);
}
});
解决方法
precaching works in Workbox 的方式是在 Service Worker 处于 installed
时缓存文件。
您在 SW 中的事件内调用 precacheAndRoute
,SW 已安装,然后不会执行 precacheAndRoute。
您可能也想查看 image cache recipe。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。