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

浏览器兼容性