谷歌应用程序制造商保存和更新记录

问题描述:

我们有方法来创建和更新应用程序制造商的项目,但它会保存整个记录。如果我只想更新点击按钮上的特定字段,则没有选项。谷歌应用程序制造商保存和更新记录

请后,如果有任何选项更新特定领域

+0

为什么你需要它? –

自动保存模式

在自动省电模式应用设备立即节省每一个领域,所以你必须每场节约粒度。换句话说,每当字段值被更改时,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://*.com/questions/45686397/how-to-i-revert-to-manual-save-mode/45696897#45696897 –

+0

谢谢pavel这有助于 –