2016-09-23 46 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客戶端模型的緩存)將運行相同的查詢。

服務器端緩存和緩存失效在數據庫層更恰當地處理,而不是路由器層