Cache: addAll() メソッド
addAll()
は Cache
インターフェイスのメソッドで、URL の配列を受け取り、それらを取得して、指定されたキャッシュに結果のレスポンスオブジェクトを追加します。取得の間に作成されたリクエストオブジェクトは、格納されるレスポンス操作のキーになります。
メモ: addAll()
は、リクエストと一致する、以前にキャッシュに格納されたキーと値のペアをすべて上書きしますが、結果として生じる put()
操作が、同じ addAll()
メソッドによって直前にキャッシュに格納された項目を上書きしようとすると失敗します。
構文
addAll(requests)
引数
requests
-
キャッシュに追加したいリソースのリクエストの配列です。
Request
オブジェクトまたは URL が指定できます。これらのリクエストは
Request()
コンストラクターの引数として使用されるので、 URL はそのコンストラクターと同じルールに従います。すなわち、URL はベース URL からの相対パスです。ベース URL は、ウィンドウコンテキストでは文書内のbaseURI
、ワーカーコンテキストではWorkerGlobalScope.location
が該当します。
返値
undefined
で解決する Promise
です。
例外
TypeError
-
URL スキームが
http
でもhttps
でもない場合。レスポンスステータスが 200 番台(つまり、成功レスポンス)ではありません。これはリクエストが成功を返さない場合や、リクエストがオリジン間の CORS ではないリクエスト (cross-origin no-cors request) の場合も発生します(この場合、ステータスが常に 0 と報告されます)。
例
このコードブロックは、InstallEvent
が発行されるのを待ってから、アプリのインストールプロセスを処理するために、waitUntil
を実行します。この処理は、新しいキャッシュを作成するための CacheStorage.open
の呼び出しと、一連の資産を追加するための addAll()
の使用で構成されています。
this.addEventListener("install", (event) => {
event.waitUntil(
caches
.open("v1")
.then((cache) =>
cache.addAll([
"/",
"/index.html",
"/style.css",
"/app.js",
"/image-list.js",
"/star-wars-logo.jpg",
"/gallery/",
"/gallery/bountyHunters.jpg",
"/gallery/myLittleVader.jpg",
"/gallery/snowTroopers.jpg",
]),
),
);
});
仕様書
Specification |
---|
Service Workers # cache-addAll |
ブラウザーの互換性
BCD tables only load in the browser