ServiceWorkerGlobalScope: sync 事件

可用性有限

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

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

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

ServiceWorkerGlobalScope 接口的 sync 事件,在注册了 SyncManager 事件的页面(或 worker)正在运行并且网络连接可用时触发。

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

语法

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

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

onsync = (event) => { }

事件类型

一个 SyncEvent。继承自 ExtendableEventEvent

Event ExtendableEvent SyncEvent

事件属性

继承自其祖先 ExtendableEventEvent 的属性.

SyncEvent.tag 只读

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

SyncEvent.lastChance 只读

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

示例

以下示例显示了如何在 service worker 中响应 sync 事件。

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

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

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

规范

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

浏览器兼容性

另见