Ember Data批量保存到服务器

时间:2014-06-16 15:40:36

标签: ember.js save batch-updates

Ember Data正在从一个版本快速移动到版本,并且保存数据的方法也随之改变。现在使用版本1.0.0-beta.8.2a68c63a,正确的方法是更新记录,然后执行record.save()以将PUT请求触发回服务器。使用我当前的应用程序,我一次更新多个记录,这可能涉及50多个PUT ajax请求返回服务器。我们关注性能和效率问题,并且没有找到任何批量请求的文档。如果有的话,我们在网上找到了很多其他想要做同样事情的人,并且没有找到一个好的解决方案。

现在我正在考虑手动序列化这些对象并将它们保存回服务器,我认为这是Ember Data的全部内容。所以也许最好不要使用Ember Data并手动编写CRUD请求并创建我自己的数据层来处理所有这些,只需使用ArrayControllers和ObjectControllers来保存数据并绑定到把手模板。看起来这样做的好处是它可以按照我需要的方式工作(批量请求),而且代码不会打破未来版本的Ember Data。有什么想法或解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以使用DS.EmbeddedRecordsMixin执行此操作。如果您的Page对象有很多块(例如,根据您的评论),那么page-serializer.js将如下所示:

import DS from 'ember-data';

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    blocks: { serialize: 'records' }
  }
});

每当您保存页面记录时,其所有关联的块记录都将包含在该一个PUT请求中。

请参阅文档here