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 |
浏览器兼容性
加载中…