Cache
インターフェイスの addAll()
メソッドは、URL の配列を受け取り、取得して、指定されたキャッシュに結果のレスポンスオブジェクトを追加します。取得の間に作成されたリクエストオブジェクトは、格納されるレスポンス操作のキーになります。
メモ: addAll()
は、リクエストと一致する、以前にキャッシュに格納されたキーと値のペアをどれでも上書きしますが、(結果としての put()
操作が)同一の addAll()
メソッドによって先に格納されたキャッシュエントリーを上書きしようとすると失敗します。
構文
cache.addAll(requests[]).then(function() { // リクエストはすでに cahce に追加されている。 });
引数
- requests
- キャッシュにフェッチして追加したい URL の文字列の配列です。 URL の代わりに
Request
オブジェクトを指定できます。
返値
undefined
で解決する Promise
。
例外
例外 | 発生条件 |
---|---|
TypeError |
URL スキームが レスポンスステータスが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
このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。