如何处理大型嵌套对象的缓存
Posted
技术标签:
【中文标题】如何处理大型嵌套对象的缓存【英文标题】:How to handle cacheing with big nested objects 【发布时间】:2018-10-17 14:55:01 【问题描述】:我有一个带有一堆嵌套对象字段的 graphql 对象,如下所示:
object
field1
field2
field3
field4
field4.1
field4.2
field4.2.1
field5
field5.1
field 5.1.1
field 5.1.2
field 6
field 7
问题在于 field4 和 field5 没有唯一标识符,并且它们对于对象始终是唯一的。我不希望它尝试缓存这些对象,而是只缓存整个对象,因为子字段对于父对象是唯一的。
我如何告诉客户端我不想尝试缓存这些子字段,而只是将对象作为一个整体进行缓存?
【问题讨论】:
【参考方案1】:我做了以下来解决这个问题
const blackList = new Set()
new InMemoryCache(
dataIdFromObject: (o: any) =>
if (o.__typename != null)
if (cacheBlacklist.has(o.__typename))
return null
...
【讨论】:
以上是关于如何处理大型嵌套对象的缓存的主要内容,如果未能解决你的问题,请参考以下文章
如何处理对尚不存在的对象的 ID 引用的 RestKit 嵌套数组?