后台定期同步演示 - 离线内容更新
注册Periodic Background Sync,让应用在后台定期获取最新数据并更新缓存。
UD5工具箱
离线时操作将加入同步队列
队列为空
添加操作或切换到离线模式后添加操作
实际部署时需要 HTTPS 并注册以下 Service Worker
📄 sw.js — Service Worker
📄 主线程注册代码
Background Sync API 允许 Web 应用在后台延迟执行任务,直到用户拥有稳定的网络连接。它通过 Service Worker 实现,即使浏览器标签页关闭,同步操作也能继续执行。这对于离线优先的应用非常关键。
需要 HTTPS 环境、浏览器支持 Service Worker 和 SyncManager 接口。Chrome、Edge、Opera 等基于 Chromium 的浏览器支持较好。Firefox 和 Safari 的支持有限,需要使用其他离线策略作为降级方案。
推荐使用 IndexedDB,因为它支持大容量异步存储、事务操作和索引查询。localStorage 适合小规模数据但容量有限(通常 5-10MB)且是同步操作。对于生产环境,IndexedDB 是更好的选择。
应实现重试策略:指数退避(exponential backoff)、设置最大重试次数、记录失败原因。对于永久性失败(如数据验证错误),应标记为失败并通知用户。对于临时性失败(网络超时),自动重试。
后台同步是 PWA(渐进式 Web 应用)离线能力的重要组成部分。配合 Service Worker 缓存和 Web App Manifest,后台同步让 Web 应用拥有接近原生应用的离线体验和数据可靠性。
使用 'serviceWorker' in navigator 和 'SyncManager' in window 进行特性检测。还可以通过 navigator.serviceWorker.ready 获取注册对象后检查 sync 属性的可用性来确认完整支持。
适用于消息发送、表单提交、数据上传、订单创建、内容发布、分析数据上报等场景。任何需要确保数据最终到达服务器的操作都可以使用离线队列模式来提升可靠性。
采用乐观锁或版本号机制,每个操作携带资源版本。服务器端使用 last-write-wins 或合并策略。对于关键数据,可以实现 CRDT(无冲突复制数据类型)来保证最终一致性。
注册Periodic Background Sync,让应用在后台定期获取最新数据并更新缓存。
创建当用户离线时展示的简单HTML页面,结合Service Worker使用。
逐步展示SW从注册、安装到激活的完整流程,并模拟更新与跳过等待的场景。
在单页内模拟MPA过渡效果,自定义进场/出场动画,体验View Transitions API丝滑切换。
使用Service Worker拦截fetch请求,并返回用户自定义的JSON模拟数据,用于前端独立开发。
打开一个始终置顶的小窗口,在其中显示自定义内容(例如笔记/时钟),实验新API。
配置事件类型和重试间隔,生成用于接收 SSE 的前端 EventSource 代码和后端流示例。
激活 beforeunload 事件,尝试刷新或关闭标签页时会弹出浏览器确认提示,展示实现方式。
构建或随机生成二叉树,逐步动画展示前序、中序、后序和层序遍历的路径。
捕捉页面粘贴事件,展示文本、HTML 或图片数据,演示如何定制粘贴行为。
在图像上点击,利用前端模型将点击范围内的主要物体自动从背景分离。
在散点图上拖拽数据点,实时更新最小二乘回归线,显示斜率和截距。
粘贴含有冲突标记的文件内容,左右对照选择保留版本,一键生成干净合并结果。
用彩色小球串演示Git仓库的提交(commit)、创建分支(branch)和合并(merge)过程。
根据分支类型(feature/bugfix/hotfix)和描述自动生成规范的分支名,如 feature/xxx。
展示各种 HTML5 验证属性(required, pattern, min, max 等)和自定义验证消息的效果。
枚举连接的显示器,并在特定的屏幕上打开新窗口,体验现代多显示器Web应用。
定义字段名称和类型(姓名、邮箱、数字范围等),批量生成符合规则的 JSON 模拟数据。
向指定 URL 发送不同 HTTP 方法的请求,显示响应状态码、头部和主体,学习 RESTful API。
使用指针锁定 API 在 3D 场景中控制视角移动,模拟 FPS 游戏鼠标控制。
可视化线段树的构建、单点更新和区间求和查询过程,理解树状结构。
从眉毛、眼睛、嘴巴等部件中拖拽组合,生成独一无二的日式颜文字表情,一键复制。
提供一份涵盖性能、安全、备份、监控等上线前检查清单,可自定义勾选。
构建二叉树节点,动态演示三种深度优先遍历顺序及逐层遍历。
输入一组快捷键,检测在主流操作系统和浏览器中是否已被系统或软件占用。
发起请求获取当前URL或任意允许CORS的URL的Response Headers,展示详情。
展示一些常用内置HTML元素和自定义元素例子,提供代码复制。
记录页面交互触发的所有DOM事件及其目标、冒泡阶段,以日志和瀑布形式展示。
为每个字符添加Unicode删除线组合符号,生成带删除线的纯文本,适用于格式化受限场景。
选择平台和分享参数,生成分享到Twitter、Facebook、WhatsApp等的URL链接及按钮。