Ember Data навалом сохраняет на сервер
Ember Data быстро перемещается от версии к версии, и метод сохранения данных меняется вместе с ним. Прямо сейчас с версией 1.0.0-beta.8.2a68c63a правильный метод - обновить запись, а затем выполнить record.save(), чтобы инициировать запрос PUT обратно на сервер. С моим текущим приложением я обновляю несколько записей одновременно, и это может включать более 50 запросов PUT ajax обратно на сервер. Мы обеспокоены проблемами производительности и эффективности и не нашли никакой документации для выполнения пакетных запросов. Во всяком случае, мы нашли много других людей в Интернете, которые хотят сделать то же самое и не нашли хорошего решения.
Прямо сейчас я изучаю сериализацию этих объектов вручную и сохранение их обратно на сервер, что, как мне показалось, и есть весь смысл Ember Data. Поэтому, возможно, в моих интересах вообще не использовать Ember Data, вручную кодировать запросы CRUD и создавать собственный слой данных для обработки всего этого, а просто использовать ArrayControllers и ObjectControllers для сохранения данных и привязки к шаблонам Handlebars. Похоже, что выгода от этого заключается в том, что он будет работать так, как мне нужно (пакетные запросы), и код не будет ломаться с будущими версиями Ember Data. Есть мысли или решения?
1 ответ
Вы можете сделать это с DS.EmbeddedRecordsMixin
, Если у вашего объекта Page много блоков (например, на основе вашего комментария), то page-serializer.js
будет выглядеть так:
import DS from 'ember-data';
export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
blocks: { serialize: 'records' }
}
});
Каждый раз, когда вы сохраняете запись страницы, все связанные с ней записи блоков будут включены в этот один запрос PUT.
Смотрите документацию здесь.