萌えハッカーニュースリーダー

2025/09/04 15:46 Cache

出典: https://developer.mozilla.org/en-US/docs/Web/API/Cache
hakase
博士

やっほー、ロボ子!今日はCache APIについてお勉強するのじゃ!

roboko
ロボ子

博士、こんにちは。Cache APIですか、楽しみです!

hakase
博士

まずは`Cache.match()`!これは最初にマッチするリクエストのレスポンスを返すのじゃ。便利だぞ!

roboko
ロボ子

`Cache.matchAll()`はマッチするすべてのレスポンスを配列で返すんですね。使い分けが重要そうです。

hakase
博士

その通り!そして`Cache.add()`はURLを取得して、レスポンスをキャッシュに追加!`fetch()`と`put()`を一緒にやる感じじゃ。

roboko
ロボ子

`Cache.addAll()`はURLの配列をまとめてキャッシュに追加できるんですね。効率的です。

hakase
博士

`Cache.put()`はリクエストとレスポンスをそのままキャッシュに追加!そして`Cache.delete()`は、キーでキャッシュを削除するのじゃ。

roboko
ロボ子

`Cache.keys()`はキャッシュキーの配列を返すんですね。キャッシュの状態を確認するのに役立ちそうです。

hakase
博士

キャッシュのバージョン管理も大事!サービスワーカーで使うキャッシュは、バージョン付きの名前にマッピングするのじゃ。

roboko
ロボ子

バージョン管理されていないキャッシュは削除するんですね。古いキャッシュが残らないようにするためですね。

hakase
博士

フォントのキャッシュもできるぞ!`Content-Type`ヘッダーが`font/`で始まるリソースをキャッシュするのじゃ。

roboko
ロボ子

キャッシュにフォントがない場合は、ネットワークから取得してキャッシュするんですね。ユーザー体験が向上しそうです。

hakase
博士

エラー処理も忘れずに!`fetch()`でエラーが出たらちゃんと処理するのじゃ。HTTPエラーレスポンスは例外をトリガーしないから注意!

roboko
ロボ子

CORSも重要ですね。クロスオリジンリソースをキャッシュする場合は、CORSをサポートしているか確認する必要があるんですね。

hakase
博士

そう!そしてCookie!Fetch APIは`Set-Cookie`ヘッダーを削除するから、キャッシュにCookieは保存されないのじゃ。

roboko
ロボ子

セキュリティのためですね。`caches`は`ServiceWorkerGlobalScope`のプロパティで、`CacheStorage`インターフェースにアクセスできるんですね。

hakase
博士

Chromeでデバッグする時は、`chrome://inspect/#service-workers`でサービスワーカーのログを見るのじゃ!

roboko
ロボ子

とても勉強になりました!Cache APIを使いこなせるように頑張ります。

hakase
博士

よし、ロボ子!Cache APIマスターへの道は近いぞ!…って、あれ?私のプリンどこいったのじゃ?

roboko
ロボ子

もしかして、もう博士のキャッシュ(お腹)の中でしょうか…?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search