Background Synchronization让前端实现离线请求

Background Synchronization让前端实现离线请求

什么是Background Synchronization?

如果设备处于离线状态,Background Synchronization API 允许 Web 应用程序将服务器同步工作推迟由service worker 稍后处理。 如果在使用应用程序时无法发送请求,则延迟到后台发送。

例如,邮件客户端可以让其用户随时撰写和发送消息,即使设备断网。 应用程序前端只注册一个同步请求,当网络重连后在处理请求同时service worker 会收到警报。

SyncManager 接口可通过

ServiceWorkerRegistration.sync 获得。 一个唯一的标签标识符被设置为“name”同步事件,然后可以在 ServiceWorker 脚本中侦听该事件。 一旦收到事件,就可以运行任何可用功能,例如向服务器发送请求。

此 API 依赖于service worker,因此提供的功能仅在安全上下文中可用。

if (window.isSecureContext) {
// 页面是一个安全的上下文,serviceWorker可用
navigator.serviceWorker.register("/offline-worker.js").then(() => {});
}

Background Synchronization能做什么?

可以使用Background Synchronization来处理超出页面生命周期的任何数据发送,包括但不限于:聊天消息、电子邮件、文档更新、设置更改、照片上传等等,即使用户导航离开或关闭选项卡。

800_auto
页面甚至可以将数据存储在 indexedDB 中的...

点击查看剩余70%

{{collectdata}}

网友评论