无论当前连接如何,都强制将POST同步到后台-Firefox和Safari上的行为?

问题描述 投票:0回答:1

因此,我设法实现了与Workbox的后台同步,在Chrome上可以完美运行。我将立即将其推送到bg同步队列中,而不是等待提取失败,这样即使用户具有网络连接,用户也不必等待图像上传。

现在,在Safari和Firefox上-我知道,后备方法是每次服务工作者启动时都尝试后台同步。但是,在这种情况下,由于网络服务没有中断,因此无法停止工作的服务。这是否意味着我将仅在下次启动浏览器,启动特定的PWA或刷新URL时上载此项目?

service-worker progressive-web-apps workbox
1个回答
0
投票

要回答您的问题,不可能确切知道服务工作者何时停止运行。每个浏览器将在一段时间内没有任何事件后停止服务工作者,然后在下次需要处理事件(fetchsync等)时再次启动服务工作者。但是,每个浏览器都实现了确切的计时时间有所不同。

Workbox的后台同步实现确实具有一个manual method,可以根据需要调用它来开始处理队列中的项目。

话虽如此,我不建议您以这种方式与后台同步队列进行交互。

实际上是尝试上载,然后仅在失败时才将项目添加到后台同步队列中(自动,最简单的方法是通过BackgroundSyncPlugin),]是推荐用法。

您真正想要的行为是通过background fetch启用的,其中“在后台上载”。不幸的是,后台抓取目前仅在Chrome中可用。我不确定尝试在不支持后台抓取并且不支持后台同步的浏览器中模拟后台抓取是否会给非Chrome用户带来很好的体验。

© www.soinside.com 2019 - 2024. All rights reserved.