我在 PWA同步和周期性同步的后台遇到了两种不同类型的同步。他们的资源并不多,现有资源无法用示例工作代码进行足够的解释。
所以我的主要问题是:除了频率之外,它们之间还有其他逻辑差异吗?
我的问题是:他们自己处理请求吗?我问这个是因为我想要更灵活的东西,我的意思是我正在管理离线和在线情况并将数据保存在IDB中我离线,我只需要一个后台进程来从我的自定义 IDB 获取我的离线数据并发送他们到服务器。
我在 PWA同步和周期性同步的后台遇到了两种不同类型的同步。他们的资源并不多,现有资源无法用示例工作代码进行足够的解释。
所以我的主要问题是:除了频率之外,它们之间还有其他逻辑差异吗?
我的问题是:他们自己处理请求吗?我问这个是因为我想要更灵活的东西,我的意思是我正在管理离线和在线情况并将数据保存在IDB中我离线,我只需要一个后台进程来从我的自定义 IDB 获取我的离线数据并发送他们到服务器。
以下是一些可以帮助说明差异的用例。另请注意,自 2021 年 2 月起,后台同步仅在 Chrome 和基于 Chromium 的浏览器中可用,而定期后台同步仅在安装渐进式网络应用程序后才可在 Chrome 中使用。
用例是定期“在后台”重试失败的更新/上传操作(通常是 aPOST
或 a ),直到成功。PUT
例如,您可以想象尝试将新照片上传到社交媒体网站,但您的网络连接已断开。作为用户,您希望在将来的某个时间重试该上传。
sync
API 仅提供通过Web 应用的服务工作线程中的事件触发重新尝试网络操作的机会的机制。由开发人员存储有关失败请求的信息(通常在 IndexedDB 中)并实际重新发送它,并指示是否sync
成功或再次失败。
(如果您不想自己处理所有事情,该workbox-background-sync
库可以帮助您处理实现细节。)
用例是“在后台”刷新缓存,以便用户下次打开您的 Web 应用程序时,数据会比其他情况下更新鲜。您可以想象一个已安装的新闻渐进式 Web 应用程序使用定期后台同步来每天早上更新其头条新闻缓存。
在后台,这通过调用periodicsync
服务工作者中的事件来工作,在该事件处理程序中,您通常会GET
请求更新存储在 Cache Storage API 或 IndexedDB 中的内容。