美文网首页
Apollo GraphQl Cache

Apollo GraphQl Cache

作者: 熊孩子他哥 | 来源:发表于2019-05-12 16:49 被阅读0次

1.什么是缓存,缓存的利弊,如何使用缓存?

缓存,
存在即为合理,是一种不错的数据请求解决方案,但是鱼和熊掌不可兼得

【利】:
    1.不至于付出更多代价请求珍贵的数据,对服务器造成压力
    2.数据从缓存中拿,速度快,用户体验好(不过第一次还是要从服务器拿)。
【弊】:
    1.数据的有效性不强

从数据的有效性以及查询速度出发,给出以下几点解决方案:

    1.实时变更,并且查询速度非常快的数据,不使用缓存,graphql中甚至可以Subscription。
    2.实时变更,查询速度非常慢的数据,建议使用缓存,不过要定时刷新缓存数据。
    3.不实时变更,查询速度非常快的数据,建议使用缓存。
    4.不实时变更,查询速度非常慢的,一定要使用缓存,而不是重新获取数据。

2.对缓存的数据查询,突变与正常向服务器查询,突变比较

【同】:
    1.都是纯粹的graphql语法,
【异】:
    1.由于apollo graphql是Normalization的,
    缓存允许从已查询的任何节点读取数据。

3.缓存策略

apollo graphql的提取策略是缓存优先,这意味着它会在发出网络请求之前检查缓存以查看结果是否存在。
对于数据的突变,更新删除大多数逻辑并不需要我们操心.
不过新增数据,可能需要我们用update手动吧最新的数据放入缓存,
具体流程是先把数据从缓存中取出,拼接新增的数据,替换旧缓存,
点击这里阅读缓存自动更新管理策略

4.需要最新数据的查询,禁止使用apollo缓存,如何自定义缓存提取策略?

1.一般是在参数直接配置提取策略{fetchPolicy: 'network-only'},Customizing the fetch policy
2.当然了,可以发送请求直接更新缓存refetchQueries

相关文章

网友评论

      本文标题:Apollo GraphQl Cache

      本文链接:https://www.haomeiwen.com/subject/nawcaqtx.html