企业H5站点升级PWA (八)
图片里的 推送, 同步, 定期同步 有什么作用?

下面这三个按钮都是 Chrome/Edge DevTools 里 专门用来调试 Service Worker 的模拟入口,不会自动出现在真实用户环境里,只对当前开发者工具页面生效:
- 推送(Push)
- 作用:模拟服务器发来的 push 消息。
- DevTools 会向你的 Service Worker 触发一个
push事件:
self.addEventListener('push', event => {
// 这里的代码会被执行
});
- 你在输入框里填的内容会作为
event.data.text()提供给 SW,用来调试 Web Push 通知逻辑,而不需要真的接入 FCM/自己的推送服务器。
- 同步(Sync)
- 作用:模拟一次 后台同步(Background Sync) 事件。
- 会触发你在 SW 中注册的
sync事件:
self.addEventListener('sync', event => {
if (event.tag === 'test-tag-from-devtools') {
// 这里执行你要在恢复网络时重试的逻辑
}
});
- 输入框里的字符串就是
event.tag,用来区分不同的同步任务。 - 场景:比如离线时把请求暂存起来,网络恢复后自动重试上传。
- 定期同步(Periodic Sync)
- 作用:模拟 Periodic Background Sync(周期性后台同步)事件。
- 会触发:
self.addEventListener('periodicsync', event => {
if (event.tag === 'test-tag-from-devtools') {
// 周期性拉取配置/消息之类的逻辑
}
});
- 同样,输入框里的值是
event.tag。 - 真实环境下,这个特性受浏览器和权限限制较大,DevTools 提供这个按钮方便你在本地测试处理逻辑。
如果你的 sw.js 里目前没有 push / sync / periodicsync 的事件监听,这三个按钮点了也不会有任何效果;要利用它们,需要在 Service Worker 里显式添加对应的事件处理代码。
关联项目
FreeSql QQ群:4336577
BA & Blazor QQ群:795206915
Maui Blazor 中文社区 QQ群:645660665
知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名AlexChow(包含链接: https://github.com/densen2014 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系 。
转载声明
本文来自博客园,作者:周创琳 AlexChow,转载请注明原文链接:https://www.cnblogs.com/densen2014/p/19623504
AlexChow
今日头条 | 博客园 | 知乎 | Gitee | GitHub


浙公网安备 33010602011771号