Apollo离线首次支持:服务工作者还是持久缓存?

mat*_*sfh 7 apollo react-apollo apollo-client workbox-webpack-plugin pwa

我有一个使用apollo作为grapql客户端的反应应用程序.该应用程序现在需要离线支持子集/子应用程序.有一个服务工作者(感谢工作箱和webpack),它可以预先缓存应用程序的资产并且运行良好.现在需要添加对数据的支持.该应用程序需要在离线模式下工作,如在线.这意味着,用户应该能够查看数据并执行一些突变,这些突变需要在应用再次联机时进行同步.

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

什么是一个更好,更简单的离线网络应用程序方法=

小智 0

Service-Worker 是您最好的选择。我目前正在考虑这个决定,我决定坚持使用 Service-Worker。