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 2018年4月.
matchAll() は Cache インターフェイスのメソッドで、Cache オブジェクト内の一致するすべてのレスポンスの配列に解決される Promise を返します。
構文
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> |
ブラウザーの互換性
Loading…