2013-03-31 58 views
1

Ember Data的DS.RESTAdapter包括一個bulkCommit屬性。除了對批量提交和批量提交的模糊引用之外,我無法找到任何有關此操作/含義的文檔。Ember的RestAdapter中bulkCommit意味着什麼?

起初我以爲這將意味着我只能更新一次一個單一的記錄,但我現在有它設置爲false,我仍然能夠使用更新的同時多條記錄:

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

那麼將bulkCommit設置爲false並將其設置爲true有什麼區別?在什麼情況下我會使用一個而不是另一個?

回答

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(); 

然後燼數據將只是一個API「/人」呼籲POST對所有3個記錄的詳細信息。顯然不是每個API都會支持這個,但是如果你的API確實可以提高性能。

AFAIK沒有這個文件還沒有,但你可以看到它下面的單元測試工作:creating several people (with bulkCommit) makes a POST to /people, with a data hash Array

+0

我認爲這是貶低。 [TRANSITION.md]的最後一部分(https://github.com/emberjs/data/blob/master/TRANSITION.md#transaction-is-gone-save-individual-records)解釋瞭如何執行批量保存Ember Data v.1.0 – Valer

+3

我的錯誤。它沒有使用單個請求:「如果您想要批量處理一批記錄以便一次保存並保存所有記錄,則可以將它們放入數組中並在準備就緒時調用.invoke('save')。 我們計劃通過未來的專用API通過單個HTTP請求支持批量保存。「 – Valer