Cache.addAll()

Cache インターフェイスの addAll() メソッドは、URL の配列を受け取り、取得して、指定されたキャッシュに結果のレスポンスオブジェクトを追加します。取得の間に作成されたリクエストオブジェクトは、格納されるレスポンス操作のキーになります。

メモ: addAll() は、リクエストと一致する、以前にキャッシュに格納されたキーと値のペアをどれでも上書きしますが、(結果としての put() 操作が)同一の addAll() メソッドによって先に格納されたキャッシュエントリーを上書きしようとすると失敗します。

構文

cache.addAll(requests[]).then(function() {
  // リクエストはすでに cahce に追加されている。
});

引数

requests
キャッシュにフェッチして追加したい URL の文字列の配列です。 URL の代わりに Request オブジェクトを指定できます。

返値

undefined で解決する Promise

例外

例外 発生条件
TypeError

URL スキームが httphttps ではありません。

レスポンスステータスが200番台(つまり、成功レスポンス)ではありません。これはリクエストが成功を返さない場合や、リクエストがオリジン間の CORS ではないリクエスト (cross-origin no-cors request) の場合も発生します (この場合、ステータスが常に 0 で報告されます)。

このコードブロックは、InstallEvent が発火するのを待ってから、アプリのインストールプロセスを処理するために、waitUntil を実行します。この処理は、新しいキャッシュを作成するための CacheStorage.open の呼び出しと、一連の資産を追加するための addAll() の使用で構成されています。

this.addEventListener('install', function(event) {
  event.waitUntil(
    caches.open('v1').then(function(cache) {
      return cache.addAll([
        '/sw-test/',
        '/sw-test/index.html',
        '/sw-test/style.css',
        '/sw-test/app.js',
        '/sw-test/image-list.js',
        '/sw-test/star-wars-logo.jpg',
        '/sw-test/gallery/',
        '/sw-test/gallery/bountyHunters.jpg',
        '/sw-test/gallery/myLittleVader.jpg',
        '/sw-test/gallery/snowTroopers.jpg'
      ]);
    })
  );
});

仕様策定状況

仕様書 策定状況 コメント
Service Workers
Cache: addAll の定義
草案 初回定義

ブラウザーの対応

BCD tables only load in the browser

関連情報