Apollo脱机优先支持:Service Worker还是Persisted Cache?

时间:2018-06-25 20:37:07

标签: apollo react-apollo apollo-client pwa workbox-webpack-plugin

我有一个使用apollo作为grapql客户端的react应用。 该应用程序现在需要对子集/子应用程序的脱机支持。 有一个服务人员(由于工作箱和Webpack)对应用程序资产进行了预缓存,并且效果很好。 现在需要添加对数据的支持。 该应用程序需要像在线一样在离线模式下工作。这意味着用户应该能够查看所有数据并执行一些更改,当应用程序再次联机时,这些更改将需要同步回去。

我有以下几种可能的解决方法:  *使用服务人员:  添加一个按钮,该按钮触发一组查询以检索离线工作所需的所有数据。 使用服务工作者(工作箱runtimeCaching)来缓存这些查询的所有响应。 当应用程序脱机时,服务人员将“提供”查询的响应,因此应用程序将“像其在线一样”工作,并以服务人员作为“代理”的方式正常执行查询。 为突变设置“乐观ui”方法,并使用workbox backgroundSync同步更改(基本上是在浏览器再次联机时将突变操作发送回端点)。  *使用某些apollo本机方法(例如apollo-cache-persist)将查询缓存存储在localStorage中。如果应用程序不在线,则触发该应用程序的所有必需查询,保留该缓存,并从缓存中为该应用程序重新补充水分,以进一步加载。

对于离线网络应用程序,哪种方法更好,更简单?

0 个答案:

没有答案