在Ember的RestAdapter的背景下,bulkCommit意味着什么?

时间:2013-03-31 16:20:32

标签: api rest ember.js ember-data bulk

Ember Data的DS.RESTAdapter包含bulkCommit属性。除了对批量提交和批量提交的一些模糊引用之外,我找不到任何关于这个/做什么的文档。

最初我认为这意味着我一次只能更新一条记录,但我现在将其设置为false,我仍然可以使用以下方式同时更新多条记录:< / p>

this.get('store').commit();

那么将bulkCommit设置为false并将其设置为true之间的区别是什么?我会在什么情况下使用一个而不是另一个?

1 个答案:

答案 0 :(得分:3)

REST适配器支持批量提交,因此您可以在一次修改多个记录时提高性能。例如,假设您要创建3条新记录。

var tom = store.createRecord(Person, { name: "Tom Dale" });
var yehuda = store.createRecord(Person, { name: "Yehuda Katz" });
var mike = store.createRecord(Person, { name: "Mike Grassotti" });
store.commit();

这将导致对POST'/ people'进行3次API调用。如果您启用了bulkCommit功能

set(adapter, 'bulkCommit', true);
var tom = store.createRecord(Person, { name: "Tom Dale" });
var yehuda = store.createRecord(Person, { name: "Yehuda Katz" });
var mike = store.createRecord(Person, { name: "Mike Grassotti" });
store.commit();

然后,ember-data将只对POST'/ people'进行一次API调用,并提供所有3条记录的详细信息。显然不是每个API都会支持这一点,但如果你这样做,它确实可以提高性能。

AFAIK尚未提供相关文档,但您可以在以下单元测试中看到它:creating several people (with bulkCommit) makes a POST to /people, with a data hash Array