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











网友评论