BackgroundFetchRegistration: match() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

注意:此功能在 Web Workers 中可用。

BackgroundFetchRegistration 介面的 match() 方法會返回第一個匹配的 BackgroundFetchRecord

語法

js
match(request)
match(request, options)

引數

請求

您嘗試查詢記錄的 Request。這可以是一個 Request 物件或一個 URL。

options 可選

一個設定 match 操作選項的物件。可用選項包括:

ignoreSearch 可選

一個布林值,指定是否忽略 URL 中的查詢字串。例如,如果設定為 true,在執行匹配時將忽略 http://foo.com/?value=bar 中的 ?value=bar 部分。預設值為 false

ignoreMethod 可選

一個布林值。當設定為 true 時,將阻止匹配操作驗證 Requesthttp 方法。如果為 false(預設值),則只允許 GETHEAD

ignoreVary 可選

一個布林值。當設定為 true 時,表示應忽略 Vary 頭部。預設為 false

返回值

一個 Promise,它會解析為與請求匹配的第一個 BackgroundFetchRecord,如果未找到匹配項,則解析為 undefined

注意:BackgroundFetchRegistration.match()BackgroundFetchRegistration.matchAll() 基本相同,只是它解析為只返回第一個匹配的記錄,而不是所有匹配記錄的陣列。

異常

InvalidStateError DOMException

當您在沒有正在進行的 fetch 時呼叫 match() 時返回此值。此狀態將反映在 BackgroundFetchRegistration.recordsAvailable 設定為 false

示例

在此示例中,我們查詢 URL 為“/ep-5.mp3”的記錄。如果找到 BackgroundFetchRecord,我們就可以返回有關它的資訊。

js
bgFetch.match("/ep-5.mp3").then(async (record) => {
  if (!record) {
    console.log("No record found");
    return;
  }

  console.log(`Here's the request`, record.request);
  const response = await record.responseReady;
  console.log(`And here's the response`, response);
});

規範

規範
Background Fetch
# background-fetch-registration-match

瀏覽器相容性