BackgroundFetchRegistration.match()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

BackgroundFetchRegistration インターフェイスの match() メソッドは、最初にマッチした BackgroundFetchRecord を返します。

構文

js
match(request)
match(request, options)

引数

request

取得したい record の Request。これは Request オブジェクトまたは URL です。

options 省略可

match 操作のオプションを指定するオブジェクトです。以下が利用可能です。

ignoreSearch

URL 中のクエリー文字列を無視するかどうか指定するbool 値です。例えば true のとき、http://foo.com/?value=bar?value=bar 部分はマッチ処理で無視されます。デフォルトは false です。

ignoreMethod

bool 値です。true のとき、マッチ処理は Requesthttp メソッドを検証しません。false (デフォルト値)の場合、GETHEAD のみ許可されます。

ignoreVary

bool 値です。trueVARY ヘッダーを無視することを意味します。デフォルトは false です。

返値

最初に request にマッチした BackgroundFetchRecord か、または何もマッチしなかった場合には undefined で解決される Promise を返します。

メモ: BackgroundFetchRegistration.match() は、基本的には BackgroundFetchRegistration.matchAll() と同じですが、マッチする全ての record を配列で返すのではなく、最初にマッチした record のみで解決するという違いがあります。

例外

InvalidStateError DOMException

進行中の fetch がないときに match() を呼び出すと発生します。 この状態は、BackgroundFetchRegistration.recordsAvailablefalse に設定されることで反映されます。

以下の例では URL に "/ep-5.mp3" を含む record を検索しており、BackgroundFetchRecord が見つかると、関連する情報を取得することができます。

js
bgFetch.match("/ep-5.mp3").then(async (record) => {
  if (!record) {
    console.log("レコードは見つかりませんでした。");
    return;
  }

  console.log(`リクエスト: `, record.request);
  const response = await record.responseReady;
  console.log(`応答: `, response);
});

仕様書

Specification
Background Fetch
# background-fetch-registration-match

ブラウザーの互換性

BCD tables only load in the browser