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

瀏覽器相容性

另見