ServiceWorkerGlobalScope: sync 事件
注意:此功能仅在Service Workers中可用。
当注册了该事件的页面(或工作线程)使用SyncManager
正在运行并且网络连接可用时,ServiceWorkerGlobalScope
接口的sync
事件会被触发。
此事件不可取消,也不冒泡。
语法
在诸如addEventListener()
之类的的方法中使用事件名称,或者设置事件处理程序属性。
js
addEventListener("sync", (event) => {});
onsync = (event) => {};
事件类型
一个SyncEvent
。继承自ExtendableEvent
和Event
。
事件属性
继承其祖先ExtendableEvent
和Event
的属性.
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 的浏览器中加载。