Apollo内存缓存配置



我在内存缓存中使用graphQL和apollo来显示表中的行。在某些视图中,有合理数量的数据(100条记录(,对于这样的调用,我希望缓存结果。在页面的另一个视图中,结果太多(100000多个(,使用Apollo缓存会对性能产生负面影响。页面变得缓慢和滞后,当我使用Apollo chrome扩展时,我会收到这个控制台警告

Apollo DevTools serialized state is 42.6 MB. This may cause performance degradation.

这个页面完全跳过缓存变得更有性能。是否有任何客户端配置可以更直接地控制缓存?

谢谢

首先,您应该重试生产构建。您收到的这个警告和性能下降很可能来自将渲染和监视缓存项的开发工具。制作可能会很好地处理这么多条目。

对此,干净的解决方案是使用分页,一次只加载UI显示的条目数量。ApolloClient对此有一些内置支持:https://www.apollographql.com/docs/react/pagination/core-api

一个快速的解决方案是通过使用fetchPolicy: no-cache不将缓存用于具有100k个结果的查询:https://www.apollographql.com/docs/react/caching/advanced-topics/#bypassing-高速缓存

最新更新