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 の定義
草案 初回定義

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
addAll
実験的
Chrome 完全対応 46
補足
完全対応 46
補足
補足 Requires HTTPS.
Edge 完全対応 16Firefox 完全対応 39
補足
完全対応 39
補足
補足 Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 未対応 なしOpera 完全対応 33
補足
完全対応 33
補足
補足 Requires HTTPS.
Safari 完全対応 11WebView Android 完全対応 46
補足
完全対応 46
補足
補足 Requires HTTPS.
Chrome Android 完全対応 46
補足
完全対応 46
補足
補足 Requires HTTPS.
Firefox Android 完全対応 39Opera Android 完全対応 33
補足
完全対応 33
補足
補足 Requires HTTPS.
Safari iOS 完全対応 11Samsung Internet Android 完全対応 5.0
補足
完全対応 5.0
補足
補足 Requires HTTPS.

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
実装ノートを参照してください。
実装ノートを参照してください。

関連情報