2017-08-30 70 views

回答

1

自動保存模式

在自動省電模式應用設備立即節省每一個領域,所以你必須每場節約粒度。換句話說,每當字段值被更改時,App Maker都會向服務器發送請求以保存修改。

// this code will trigger async call to server to save the modification 
// only for this particular field. 
app.datasources.MyDatasource.item.MyField = 'My new value'; 

手動保存模式

帶手動保存模式中,沒有簡單的方法來單獨保存修改的子集,因爲每當你叫「的SaveChanges」方法應用Maker將盡量堅持到所做的所有修改數據源。這裏有一些非常糟糕的變通辦法我不會推薦,除非你有沒有其他選擇:

// Implementation with callback chaining if field save 
// order matters. It will work extremely slow. 
var ds = app.datasources.MyDatasource; 
ds.item.MyField1 = 'My new value 1'; 

ds.saveChanges(function() { 
    ds.item.MyField2 = 'My new value 2'; 

    ds.saveChanges(function() { 
    ds.item.MyField3 = 'My new value 3'; 
    ... 
    }); 
}); 


// Implementation without chaining. In theory should work 
// faster(if it would work at all...) 
var ds = app.datasources.MyDatasource; 

ds.item.MyField1 = 'My new value 1'; 
ds.saveChanges(); 

ds.item.MyField2 = 'My new value 2'; 
ds.saveChanges(); 

ds.item.MyField3 = 'My new value 3'; 
ds.saveChanges(); 
... 

服務器腳本

差不多相同的答案手動保存模式,它是可行的,但我不會推薦它,因爲性能會顯着降低。

record.MyField1 = 'My new value 1'; 
app.saveRecords([record]); 

record.MyField2 = 'My new value 2'; 
app.saveRecords([record]); 

record.MyField3 = 'My new value 3'; 
app.saveRecords([record]); 
... 
+0

謝謝帕維爾。我想禁用自動保存模式有沒有辦法做到這一點。 –

+0

當然,您可以在數據源設置中找到'手動保存模式'複選框:https://stackoverflow.com/questions/45686397/how-to-i-revert-to-manual-save-mode/45696897#45696897 –

+0

謝謝pavel這有助於 –