すべてのユーザーに対して preCache を実行するのではなく、メンバーに対してのみ preCache を実行します。サーバーへの不必要な負荷と、1 回限りの訪問者の不必要なキャッシュを回避するために、これを行いたいと考えています。
そのため、訪問者がログインすると、Service Worker にメッセージを送信します。以下の Service Worker のスニペットでは、「Message Received」がコンソールに記録されています。ただし、画像はキャッシュされません。そして、エラーメッセージはありません。
precacheAndRoute(images)
の下に直接配置するとconst images = [....];
、画像は適切にキャッシュされます。
サービスワーカーは初めてです。そして、どんな助けも大歓迎です。
const images = [....];
addEventListener('message', (event) => {
if (event.data.type === 'cacheImages') {
console.log('Message Received');
precacheAndRoute(images);
}
});