CacheStorage.keys()

CacheStorage インターフェイスの keys() メソッドは、CacheStorage オブジェクトによって追跡されるすべての名前付き Cache オブジェクトに対応する文字列をそれが作成された順番で含む配列で解決する Promise を返します。 このメソッドを使用して、すべての Cache オブジェクトのリストを反復処理します。

グローバルな caches プロパティを介して CacheStorage にアクセスできます。

構文

caches.keys().then(function(keyList) {
  // keyList で何かをする
});

パラメーター

なし。

戻り値

CacheStorage オブジェクト内の Cache 名の配列で解決する Promise

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

this.addEventListener('activate', function(event) {
  var cacheWhitelist = ['v2'];

  event.waitUntil(
    caches.keys().then(function(keyList) {
      return Promise.all(keyList.map(function(key) {
        if (cacheWhitelist.indexOf(key) === -1) {
          return caches.delete(key);
        }
      });
    })
  );
});

仕様

仕様 状態 コメント
Service Workers
CacheStorage: keys の定義
草案 初期定義

ブラウザーの互換性

BCD tables only load in the browser

関連情報