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来处理超出页面生命周期的任何数据发送,包括但不限于:聊天消息、电子邮件、文档更新、设置更改、照片上传等等,即使用户导航离开或关闭选项卡。
页面甚至可以将数据存储在 indexedDB 中的...
点击查看剩余70%
网友评论