BackgroundFetchRegistration:match() 方法

有限可用性

此功能不是基线功能,因为它在一些最广泛使用的浏览器中无法正常工作。

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

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

match() 方法是 BackgroundFetchRegistration 接口的方法,它返回第一个匹配的 BackgroundFetchRecord

语法

js
match(request)
match(request, options)

参数

request

您尝试查找记录的 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

如果您在没有进行任何获取操作时调用 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-registration-match

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。