2016-09-23 96 views
0

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

+0

我邀请您参加一个看起来[代码](https://github.com/Netflix的/ falcor-路由器)。 –

回答

0

总之,不,falcor路由器不缓存数据。由于单个请求可能由多条路由解决,因此路由器确实会构建一个每个请求缓存,但是在路由器完成对请求的响应后,该缓存将被丢弃。

E.g.下面的请求

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

可以通过两个或三个不同的路线,例如,

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

直到它解析所有请求的路径和跟进任何返回的参考节点的路由器将合并的每个路由响应成为图形片段。这个图片可以被认为是每个请求缓存(或者至少在source code中被称为这样),但是在响应返回给客户端之后它被丢弃。

这意味着几件事情:

  • 服务器没有什么知识的数据/还不是客户端
  • 图碎片没有兑现,这意味着运行相同的查询两次(假设它不会打你的falcor客户端模型的缓存)将运行相同的查询。

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