2016-09-23 6 views
0

Я понимаю, что на стороне клиента falcor он кэширует данные в модели. На стороне сервера приложений нам необходимо внедрить маршруты falcor в качестве источника данных. Имеет ли данные Falcor кэширование на стороне сервера приложений? Если да, то как? Спасибо,Как данные кэша Falcor на стороне сервера?

+0

Я приглашаю вас принять смотреть [код] (https://github.com/Netflix/Falcor-маршрутизатор). –

ответ

0

Короче говоря, нет, falcor-router не кэширует данные. Поскольку один запрос может быть разрешен несколькими маршрутами, маршрутизатор создает кеш для каждого запроса, но этот кеш удаляется после завершения ответа маршрутизатора на запрос.

E.g. следующий запрос

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

может быть разрешен двумя или тремя различными способами, например.

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

Маршрутизатор будет объединять каждый ответ маршрут в виде фрагмента графа, пока он не решает все требуемые пути и отслеживает любые возвращаемые узлы реф. Этот фрагмент графа можно рассматривать как кеш для каждого запроса (или, по крайней мере, он упоминается как таковой в source code), но он отбрасывается после того, как ответ возвращается клиенту.

Это означает несколько вещей:

  • сервер не имеет сведений о том, какие данные/не уже на клиенте
  • фрагменты графа не материализованная, означающего работает один и тот же запрос дважды (при условии, он не попадает в кеш-модель вашего клиента falcor) будет запускать тот же запрос.

на стороне сервера кэширования и кэш недействительности целесообразнее обрабатывается в слое базы данных, а не маршрутизатор слоя

 Смежные вопросы

  • Нет связанных вопросов^_^