PeriodicSyncManager: register() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

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

register() 方法是 PeriodicSyncManager 接口的一部分,它使用指定的标签和选项向浏览器注册一个周期性同步请求。它返回一个 Promise,该 Promise 在注册完成时解析。

语法

js
register(tag, options)

参数

tag

一个唯一的 String 标识符。

options 可选

一个包含以下可选数据的 Object

minInterval

周期性同步应该发生的最小间隔时间(以毫秒为单位)。

返回值

返回一个解析为 undefinedPromise

异常

InvalidStateError DOMException

如果没有活动的 ServiceWorker,则返回此值。

NotAllowedError DOMException

如果未授予后台周期性同步的权限,则返回此值。

InvalidAccessError DOMException

如果活动窗口不是主窗口(不是 auxiliarytop-level 类型),则返回此值。

示例

以下异步函数将在浏览上下文中,以一天为最短间隔,注册一次周期性后台同步。

js
async function registerPeriodicNewsCheck() {
  const registration = await navigator.serviceWorker.ready;
  try {
    await registration.periodicSync.register("fetch-news", {
      minInterval: 24 * 60 * 60 * 1000,
    });
  } catch {
    console.log("Periodic Sync could not be registered!");
  }
}

规范

规范
Web 周期性后台同步
# dom-periodicsyncmanager-register

浏览器兼容性

另见