概述Background Sync 允许在网络恢复后自动触发 `sync` 事件执行任务(如队列发送)。需要注册 Service Worker 并在主线程调用 `registration.sync.register(tag)`。用法/示例// 主线程:登记同步任务 const reg = await navigator.serviceWorker.register('/sw.js') await reg.sync.register('sync-orders') // sw.js self.addEventListener('sync', e => { if (e.tag === 'sync-orders') { e.waitUntil(flushPendingOrders()) } }) 工程建议为任务设计幂等与去重,避免重复提交;与 IndexedDB/CacheStorage 协作持久化队列。对失败进行退避重试与上限限制,记录结果用于可观测性与审计。在不支持环境使用前台“发送失败可重试”或应用内轮询降级。参考与验证MDN:SyncManager — https://developer.mozilla.org/docs/Web/API/SyncManagerweb.dev:Background Sync — https://web.dev/articles/background-sync

发表评论 取消回复