CacheStorage: keys() メソッド
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
メモ: この機能はウェブワーカー内で利用可能です。
keys()
は CacheStorage
インターフェイスのメソッドで、CacheStorage
オブジェクトによって追跡されるすべての名前付き Cache
オブジェクトに対応する文字列をそれが作成された順番で含む配列で解決する Promise
を返します。
このメソッドを使用して、すべての Cache
オブジェクトのリストを反復処理します。
CacheStorage
には、ウィンドウの Window.caches
プロパティまたはワーカーの WorkerGlobalScope.caches
を介してアクセスできます。
構文
keys()
引数
なし。
返値
Promise
で、 CacheStorage
オブジェクト内の Cache
名の配列で解決します。
例
このコードスニペットでは、activate
イベントを待機してから、新しいサービスワーカーがアクティブ化される前に、古い未使用のキャッシュをクリアする waitUntil()
ブロックを実行します。 ここに、保持したいキャッシュの名前を含む許可リスト(cacheAllowlist
)があります。 keys()
を使用して CacheStorage
オブジェクトのキャッシュのキーを返し、各キーをチェックして許可リストにあるかどうかを確認します。 ない場合は、CacheStorage.delete()
を使用して削除します。
this.addEventListener("activate", (event) => {
const cacheAllowlist = ["v2"];
event.waitUntil(
caches.keys().then((keyList) =>
Promise.all(
keyList.map((key) => {
if (!cacheAllowlist.includes(key)) {
return caches.delete(key);
}
}),
),
),
);
});
仕様書
Specification |
---|
Service Workers # cache-storage-keys |
ブラウザーの互換性
BCD tables only load in the browser