Falcor如何在服务器端缓存数据?

时间:2016-09-23 18:08:05

标签: falcor falcor-router

据我所知,在falcor客户端,它会在模型​​中缓存数据。在应用服务器端,我们需要实现falcor路由作为数据源。 Falcor是否在应用服务器端缓存数据?如果是这样,怎么样? 谢谢,

1 个答案:

答案 0 :(得分:0)

简而言之,不,falcor-router不会缓存数据。由于单个请求可能由多个路由解析,因此路由器会构建每个请求缓存,但在路由器完成对请求的响应后,该缓存将被丢弃。

E.g。以下要求

method=get
paths=[
  items[0..10]['id', 'name'],
  items.length,
]

可以通过两种或三种不同的途径解决,例如

[items[{range}]]
[items.length]
[itemsById[{keys}]

路由器会将每个路由响应合并到一个图片段中,直到它解析所有请求的路径并跟进任何返回的ref节点。可以将此图片段视为每请求缓存(或至少在source code中称为此缓存),但在将响应返回给客户端后将其删除。

这意味着一些事情:

  • 服务器不知道客户端上/不存在哪些数据
  • 图形片段未实现,意味着运行相同的查询两次(假设它没有命中您的falcor客户端模型的缓存)将运行相同的查询。

服务器端缓存和缓存失效在数据库层而不是路由器层中更合理地处理