ServiceWorkerGlobalScope: sync 事件

有限可用性

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

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

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

当注册了该事件的页面(或工作线程)使用SyncManager正在运行并且网络连接可用时,ServiceWorkerGlobalScope 接口的sync事件会被触发。

此事件不可取消,也不冒泡。

语法

在诸如addEventListener()之类的的方法中使用事件名称,或者设置事件处理程序属性。

js
addEventListener("sync", (event) => {});

onsync = (event) => {};

事件类型

事件属性

继承其祖先ExtendableEventEvent的属性.

SyncEvent.tag 只读

返回此SyncEvent的开发人员定义的标识符。

SyncEvent.lastChance 只读

如果用户代理在当前尝试后不会进行进一步的同步尝试,则返回true

示例

以下示例显示了如何在服务工作线程中响应 sync 事件。

js
self.addEventListener("sync", (event) => {
  if (event.tag === "sync-messages") {
    event.waitUntil(sendOutboxMessages());
  }
});

您还可以使用onsync属性设置事件处理程序

js
self.onsync = (event) => {
  // ...
};

规范

规范
Web 后台同步
# dom-serviceworkerglobalscope-onsync

浏览器兼容性

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

另请参阅