PeriodicSyncManager
注意:此功能在 Web Workers 中可用。
PeriodicSyncManager
接口是 Web 定期后台同步 API 的一部分,它提供了一种方法来注册在服务工作线程中以定期间隔(并具有网络连接)运行的任务。这些任务称为定期后台同步请求。通过 ServiceWorkerRegistration.periodicSync
访问 PeriodicSyncManager
。
实例属性
无。
实例方法
PeriodicSyncManager.register()
实验性-
使用指定的标签和选项向浏览器注册定期同步请求。返回一个
Promise
,该 Promise 在注册完成后解析。 PeriodicSyncManager.unregister()
实验性-
注销与指定标签对应的定期同步请求,并返回一个
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 |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。