0

我不想为所有用户预缓存,而只为成员预缓存。我想这样做是为了避免服务器上不必要的负载以及对一次性访问者进行不必要的缓存。

因此,当访问者登录时,我会向服务人员发送一条消息。在服务工作者的以下片段中,“收到的消息”已登录控制台。但是图像没有被缓存。并且没有错误信息。

如果我直接放在precacheAndRoute(images)下面,const images = [....];那么图像会被正确缓存。

我是服务人员的新手。非常感谢任何帮助。

const images = [....];
addEventListener('message', (event) => {
  if (event.data.type === 'cacheImages') {
    console.log('Message Received');
    precacheAndRoute(images);
  }
});

4

1 回答 1

0

Workbox 中预缓存的工作方式是在 service worker 为installed.

precacheAndRoute在 SW 中的一个事件中调用,SW 已经安装,那么它不会执行 precacheAndRoute。

您可能还想检查图像缓存配方

于 2021-04-22T23:06:30.387 回答