2016-09-23 8 views
0

私はfalcorクライアント側では、モデルにデータをキャッシュすることを理解します。アプリケーションサーバー側では、データソースとしてfalcorルートを実装する必要があります。 Falcorはアプリケーションサーバー側でデータをキャッシュしますか?もしそうなら、どうですか? ありがとう、Falcorはサーバー側でどのようにデータをキャッシュしますか?

+0

私はあなたが[コード]を見て取るように誘う(https://github.comよりも、データベース層で取り扱われます/ Netflix/falcor-router)。 –

答えて

0

要するに、falcor-routerはデータをキャッシュしません。 1つの要求が複数のルートによって解決される可能性があるため、ルータは要求ごとのキャッシュを構築しますが、ルータは要求に応答した後にそのキャッシュを削除します。

など。次の要求

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

は、2つまたは3つの異なるルート、たとえば、それはすべての要求されたパスを解決し、任意戻さREFノードに追従するまで

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

ルータは、グラフフラグメントに各ルート応答をマージします。このグラフの断片は、要求ごとのキャッシュと考えることができます(または、少なくともsource codeではそのように呼ばれます)が、応答がクライアントに返された後に破棄されます。

これは、いくつかのことを意味:

  • サーバーは/データが何であるかを知らない
  • グラフフラグメントは、マテリアライズド・二度同じクエリを実行している意味していないクライアントにはなっていない(と仮定しますそれはあなたのfalcorクライアントモデルのキャッシュにヒットしません)同じクエリを実行します。

サーバー側のキャッシュとキャッシュの無効化は、より適切ではなく、ルータ層

関連する問題