2014-08-28 44 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