Cache: matchAll() メソッド
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
構文
matchAll()
matchAll(request)
matchAll(request, options)
引数
request
省略可-
Cache
内でレスポンスを見つけようとしているRequest
。 これは、Request
オブジェクトまたは URL です。この引数を省略すると、このキャッシュ内のすべてのレスポンスのコピーが取得されます。 options
省略可-
実行する照合の特定の制御オプションを設定できるオプションオブジェクト。 使用可能なオプションは次のとおりです。
ignoreSearch
-
論理値で、照合操作で URL のクエリー文字列を無視するかどうかを指定します。
true
に設定すると、http://foo.com/?value=bar
の?value=bar
部分を、照合の実行時に無視します。 既定値はfalse
です。 ignoreMethod
-
論理値で、
true
に設定すると、照合操作でRequest
のhttp
メソッドを検証しないようにします(通常は、GET
およびHEAD
のみが許可されます)。 既定値はfalse
です。 ignoreVary
-
論理値で、
true
に設定すると、VARY
ヘッダーの照合を実行しないように照合操作に指示します。 つまり、URL が一致する場合、Response
オブジェクトにVARY
ヘッダーがあるかどうかに関係なく一致します。 既定値はfalse
です。
返値
Cache
オブジェクト内のすべての一致するレスポンスの配列に解決される Promise
。
メモ: Cache.match()
は、一致するすべてのレスポンスの配列で解決するのではなく、最初に一致するレスポンスのみ(つまり、response[0]
)で解決することを除いて、基本的に Cache.matchAll()
と同じです。
例
以下の例では、 v1
キャッシュにある、URL /
と潜在的な引数に一致するすべてのレスポンスを受け取ります。 { ignoreSearch: true }
を使用することで、 matchAll
を使用すると、 /
だけでなく /?value=bar
も取得することができます。
そして、一致したレスポンスの数をログ出力します。
caches.open("v1").then((cache) => {
cache.matchAll("/", { ignoreSearch: true }).then((responses) => {
console.log(`Found ${responses.length} matching responses`);
});
});
仕様書
Specification |
---|
Service Workers # cache-matchall |
ブラウザーの互換性
BCD tables only load in the browser