nubuilder 更新数据时,仅保存已编辑的字段(避免更新保存整个表降低效率)

  • A+
所属分类:Code&Tools

第一次添加数据时,将保存(整个)表单以在表中创建数据。
后续修改、更新表的数据时,通过执行autosaveForm过程仅保存已编辑的字段。 这比保存整个表要快。

 

nubuilder,nubuilder 更新数据时,仅保存已编辑的字段(避免更新保存整个表降低效率)

nubuilder,nubuilder 更新数据时,仅保存已编辑的字段(避免更新保存整个表降低效率)

nubuilder,nubuilder 更新数据时,仅保存已编辑的字段(避免更新保存整个表降低效率)

nubuilder,nubuilder 更新数据时,仅保存已编辑的字段(避免更新保存整个表降低效率)

nubuilder,nubuilder 更新数据时,仅保存已编辑的字段(避免更新保存整个表降低效率)

新建一个js短代码,在保存前执行

代码如下(注意对应字段)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function nuAfterSave() {

    if (typeof window.autosaveForm_id !== 'undefined') {
   
        $('#'+ window.autosaveForm_id).focus();
       
    }

}

function getValueWithoutFormatting(field) {
   
    var o = $('#' + field);
    var f = o.attr('data-nu-format');
    var v= o.val();
           
    return nuFORM.removeFormatting(v, f);
   
}

if (nuFormType() == 'edit') {

    $('input, select, textarea').blur(function() {
   
       if ($(this).hasClass('nuEdited')) {

           var recordID = nuCurrentProperties().record_id;
           var id = $(this).attr('id');
           
           if (recordID == '-1') {
               
               if(event.relatedTarget) {
                    window.autosaveForm_id = event.relatedTarget.id;
               }
               
               nuSaveAction();
               return;
           }
           
           
           var value = getValueWithoutFormatting(id);
           var table = nuSERVERRESPONSE.table;
               
           nuSetProperty('autosaveForm_id', id);
           nuSetProperty('autosaveForm_value', value);
           nuSetProperty('autosaveForm_record_id', recordID);      
           
           nuRunPHPHidden('autosaveForm', 0);
       }
       
    });

}

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: