2014-08-28 46 views
0

我有這個代碼示例更新html表格中的單元格。如何使用jQuery高效更新大型表格

for (var i = 0; i < o.Rows.length; i++) { 
     var row = $("tr").filter("[data-id='" + o.Rows[i].Id + "']"); 
     row.find("td:eq(3)").text(o.Rows[i].Status); 
     row.find("td:eq(4)").text(o.Rows[i].Date); 
    } 

執行此示例代碼需要很長的時間,如果o.Rows.length是100萬有沒有更有效的方法來做到這一點?

+0

也許返回一個完整的表並替換整個表。 – janhartmann 2014-08-28 10:09:06

+0

在服務器端創建這個表格html會給我帶來一些麻煩。當沒有其他方式時,我會這樣做,但我仍想避免這種情況。 – 2014-08-28 10:11:27

回答

0

你可能不應該有100,000行的表,但...

你可以通過查詢所有這些前期有點加快東西:

var trs = $('tr'); 

for (var i = 0, l = o.Rows.length; i < l; i++) { 
    var tr = trs.eq(i); 
    var o = o.Rows[i]; 
    tr.find('td:first').html(o.Status).next().html(o.Date); 
} 

這裏有一個jsperf表現它在100行上:http://jsperf.com/table-update/2