如果查询使用 ApolloClient 命中缓存,您如何记录?

Posted

技术标签:

【中文标题】如果查询使用 ApolloClient 命中缓存,您如何记录?【英文标题】:how do you log if a query hit the cache with ApolloClient? 【发布时间】:2019-03-15 13:13:05 【问题描述】:

考虑以下情况,使用 Apollo 客户端的查询组件:

  <Query ...props query=NOTEBOOK_QUERY variables= id: props.notebookId  >
    result => props.children(result)
  </Query>

第一次运行时我希望它是网络调用,第二次我希望它会命中缓存。

我是否可以插入工具来打印缓存命中或未命中以及使用了什么键?

谢谢!!

【问题讨论】:

相关issue in the apollo client GH repo。一位评论者 mentions 与隐藏的 __actionHookForDevTools API 挂钩。 【参考方案1】:

如果您在 Chrome 中使用Apollo Dev Tools,您可以看到已缓存在 Apollo 链接状态中的查询,它应该显示它是否命中了存储在链接状态中的结果或返回数据库。

【讨论】:

以上是关于如果查询使用 ApolloClient 命中缓存,您如何记录?的主要内容,如果未能解决你的问题,请参考以下文章

带有 React 的 ApolloClient V3:缓存和重用 fetchMore 查询的结果

缓存设计(cache-design)

Mysql 查询缓存利弊

MyBatis框架原理3:缓存

hibernate中session的get和load方法

MySQL查询过程