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 を介してアクセスできます。

構文

js
keys()

引数

なし。

返値

Promise で、 CacheStorage オブジェクト内の Cache 名の配列で解決します。

このコードスニペットでは、activate イベントを待機してから、新しいサービスワーカーがアクティブ化される前に、古い未使用のキャッシュをクリアする waitUntil() ブロックを実行します。 ここに、保持したいキャッシュの名前を含む許可リスト(cacheAllowlist)があります。 keys() を使用して CacheStorage オブジェクトのキャッシュのキーを返し、各キーをチェックして許可リストにあるかどうかを確認します。 ない場合は、CacheStorage.delete() を使用して削除します。

js
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

関連情報