1

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

最初我认为这意味着我一次只能更新一条记录,但我目前将其设置为false,并且我仍然可以使用以下命令同时更新多条记录:

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

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

4

1 回答 1

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 都会支持这一点,但如果你的 API 支持,它确实可以提高性能。

AFAIK 目前还没有这方面的文档,但您可以在以下单元测试中看到它的工作原理:创建几个人(使用 bulkCommit)向 /people 发送一个 POST,其中包含一个数据哈希数组

于 2013-04-01T18:44:34.403 回答