html表格处理速度还是挺快的,平常都是用PHP输出完整表格,然后js各种蹂躏,100行以下的表格毫无压力。
最近碰到一个难题,财务模块要输出>500行的表格(不能分页),而且还要统计,根据数值上色之类。
原有的方法需要10秒以上的时间,体验很差。
刚开始的方案是:输出表格和处理表格分开,先显示表格,然后每100行统计一次,上色。
体验好一些,点进去3,4秒就有显示,然后还是要等10+秒才会完全统计完。
最终方案改为:PHP输出数据,js填充表格,速度完全不一样,3s内能完成500+行的显示。
一些小心得:
chrome插入数据完胜IE(大概5-10倍速度)id.appendChild()比$("#id").append()略快
td.setAttribute("bgcolor", "#ff0000")比td.style.background="#ff0000"快30%
//slower
listTable.rows[0].cells[0].innerText="1000"
//faster
var t = document.getElementById("listTable");
t.rows[0].cells[0].innerText="1000"
//chrome支持而且很快
var tr = document.createElement("tr");
tr.innerHTML ="<td bgcolor=#dddddd>1000</td><td bgcolor=#ffffaa>500</td>";
//IE不支持,只能
var tr = document.createElement("tr");
var td = document.createElement("td");
td.innerHTML = "1000";
td.style.background = "#dddddd"
tr.appendChild(td);
最后出于兼容考录还是选择了后一种