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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
match
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.