2014-04-29 122 views
0

我有一個記錄,它由大約35-40個字段組成。當我嘗試設置4-5字段的值並嘗試record.endEdit()時,大約需要450毫秒才能完成。有關我如何減少處理時間的任何想法?ExtJS record.endEdit()性能非常低

+0

你的記錄屬於商店嗎? –

+0

是的,所以我必須在我的代碼中更改4-5個記錄字段。在此之後,當我執行record.endEdit時,完成該過程需要大約450毫秒。 – user2316489

+0

在設置字段之前是否調用record.beginEdit()? –

回答

0

的時間似乎真的很奇怪,你可以重寫endEdit()一些定時器,看看有什麼需要這麼長時間:

endEdit : function(silent, modifiedFieldNames){ 
    console.time("endEdit"); 
    var me = this, 
     dataSave, 
     changed; 

    silent = silent === true; 
    if (me.editing) { 
     me.editing = false; 
     dataSave = me.dataSave; 
     me.modifiedSave = me.dataSave = me.dirtySave = null; 
     if (!silent) { 
      if (!modifiedFieldNames) { 
       console.time("getModifiedFieldNames"); 
       modifiedFieldNames = me.getModifiedFieldNames(dataSave); 
       console.timeEnd("getModifiedFieldNames"); 
      } 
      changed = me.dirty || modifiedFieldNames.length > 0; 
      if (changed) { 
       console.time("afterEdit"); 
       me.afterEdit(modifiedFieldNames); 
       console.timeEnd("afterEdit"); 
      } 
     } 
    } 
    console.timeEnd("endEdit"); 
} 

會打印出3倍到控制檯上,所以你可以看到什麼功能需要很長時間