PeriodicSyncManager
注意:此功能在 Web Workers 中可用。
PeriodicSyncManager 介面(屬於 Web 週期性後臺同步 API)提供了一種方法,用於在 Service Worker 中,在網路連線可用時,以固定的時間間隔註冊要執行的任務。這些任務被稱為週期性後臺同步請求。可以透過 ServiceWorkerRegistration.periodicSync 訪問 PeriodicSyncManager。
例項屬性
無。
例項方法
PeriodicSyncManager.register()Experimental-
使用指定的標籤和選項向瀏覽器註冊一個週期性同步請求。返回一個
Promise,該 Promise 在註冊完成後解析。 PeriodicSyncManager.unregister()Experimental-
取消註冊與指定標籤對應的週期性同步請求,並返回一個
Promise,該 Promise 在登出完成後解析。
示例
以下示例展示瞭如何使用該介面。
請求週期性後臺同步
以下非同步函式將在瀏覽上下文中,以一天為最短間隔,註冊一次週期性後臺同步。
js
async function registerPeriodicNewsCheck() {
const registration = await navigator.serviceWorker.ready;
try {
await registration.periodicSync.register("get-latest-news", {
minInterval: 24 * 60 * 60 * 1000,
});
} catch {
console.log("Periodic Sync could not be registered!");
}
}
透過標籤驗證後臺週期性同步
此程式碼檢查是否已註冊具有給定標籤的週期性後臺同步任務。
js
navigator.serviceWorker.ready.then((registration) => {
registration.periodicSync.getTags().then((tags) => {
if (tags.includes("get-latest-news")) skipDownloadingLatestNewsOnPageLoad();
});
});
移除後臺週期性同步任務
以下程式碼會移除一個週期性後臺同步任務,以停止在後臺同步文章。
js
navigator.serviceWorker.ready.then((registration) => {
registration.periodicSync.unregister("get-latest-news");
});
規範
| 規範 |
|---|
| Web 週期性後臺同步 # periodicsyncmanager-interface |
瀏覽器相容性
載入中…