У меня вопрос о загрузке и кешировании удаленных объектов с помощью Ember. Я разрабатываю приложение Ember, которое использует серверное хранилище через REST API. Некоторые из извлеченных данных редко меняются, поэтому выборки с сервера каждый раз, когда загружается приложение, не требуется. Но это также вопрос для приложений, которые должны работать в автономном режиме и до сих пор сохранять свои данные на сервере.
У Ember Data есть встроенный адаптер хранения для сохраняющихся моделей через REST API, а также адаптер для локального хранилища (как указал Кен ниже). Проблема (если это проблема) заключается в том, что модель имеет только один адаптер для хранения, и, похоже, нет никакой концепции кэширования извлеченных моделей, кроме сохранения их в памяти.
Я нашел похожие запросы в этом Ember wishlist и в комментариях к этому от Tom Dale, но я не нашел никаких указаний на то, что это была бы существующая функция в Ember.
У меня есть два вопроса (первый из которых является важным):
- Каков наилучший способ - сегодня - реализовать кэшированные модели в локальном хранилище и синхронизировать их с удаленными данными по мере необходимости?
- Является ли это функцией, которую планируется включить в Ember, или, по крайней мере, что-то, что должно быть добавлено сопровождением, в конечном итоге должно быть добавлено?
Когда дело доходит до 1), я могу придумать пару стратегий:
a) Расширьте существующий адаптер и добавьте настраиваемый механизм удаленной синхронизации:
App.Store.registerAdapter('App.Post', DS.LSAdapter.extend({
// do stuff when stuff happens
}));
b) Поддерживать отдельные классы моделей - один набор для удаленных объектов и один набор для локальных объектов - и синхронизировать между ними по мере необходимости. Со стандартным корпусом Todo:
RemoteTodo –*sync*– Todo
|
UI
Я очень надеюсь, что это реальный вопрос о нобе и что для этого есть хороший шаблон.
Обновлено: Нашел этот похожий вопрос. У этого есть хороший ответ, но он как бы теоретический. Я думаю, что мне понадобятся некоторые практические советы или указатели на примеры реализации.