使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
来源:互联网 发布:淘宝卖家人工电话 编辑:程序博客网 时间:2024/05/29 09:44
本来是想测试一下使用Javascript生成一个比较大的表格,大概需要多长时间,一直认为这会是一个比较固定的时间。期间用了几种不同的方法,发现效率相差太大了。下面是测试的具体说明:
目标:生成一个2000*5的表格,每个单元格的内容是行号+逗号+列号
方法一:使用createElement生成表格,使用insertRow和insertCell方法生成行列,单元格的内容使用innerHTML属性进行填充。
方法二:使用createElement生成表格,使用CreateElement方法生成行列,单元格的内容使用了createTextNode方法填充。
方法三:拼接表格innerHTML属性的字符串,使用字符串 += 操作符链接字符串
方法四:拼接表格innerHTML属性的字符串,各个字符串追加数组里面,最后调用数组的join方法生成目标字符串。
运行时间比较:
方法运行时间(ms)方法一93037方法二3341方法三2795方法四500具体的程序如下:
<html>
<head>
<title>test page</title>
<script type='text/javascript'>
<!--
function createTable() {
var t = document.createElement('table');
for (var i = 0; i < 2000; i++) {
var r = t.insertRow(0);
for (var j = 0; j < 5; j++) {
var c = r.insertCell(0);
c.innerHTML = i + ',' + j;
}
}
document.getElementById('table1').appendChild(t);
t.setAttribute('border', '1');
}
function createTable2() {
var t = document.createElement('table');
var b = document.createElement('tbody');
for (var i = 0; i < 2000; i++) {
var r = document.createElement('tr');
for (var j = 0; j < 5; j++) {
var c = document.createElement('td');
var m = document.createTextNode(i + ',' + j);
c.appendChild(m);
r.appendChild(c);
}
b.appendChild(r);
}
t.appendChild(b);
document.getElementById('table1').appendChild(t);
t.setAttribute('border', '1');
}
function createTable3() {
var data = '';
data += '<table border=1><tbody>';
for (var i = 0; i < 2000; i++) {
data += '<tr>';
for (var j = 0; j < 5; j++) {
data += '<td>' + i + ',' + j + '</td>';
}
data += '</tr>';
}
data += '</tbody><table>';
document.getElementById('table1').innerHTML = data;
}
function createTable4() {
var data = new Array();
data.push('<table border=1><tbody>');
for (var i = 0; i < 2000; i++) {
data.push('<tr>');
for (var j = 0; j < 5; j++) {
data.push('<td>' + i + ',' + j + '</td>');
}
data.push('</tr>');
}
data.push('</tbody><table>');
document.getElementById('table1').innerHTML = data.join('');
}
function showFunctionRunTime(f) {
var t1 = new Date();
f();
var t2 = new Date();
alert(t2 - t1);
}
//-->
</script>
</head>
<body>
<div id="table1" style="border: 1px solid black">
</div>
<script>
showFunctionRunTime(createTable);
showFunctionRunTime(createTable2);
showFunctionRunTime(createTable3);
showFunctionRunTime(createTable4);
</script>
</body>
</html>
对我本机有环境的几个浏览器进行了重新测试,结果如下:
- 使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- [转]使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- 使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- 使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- 使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- 使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- javascript 动态表格的创建
- JavaScript实现动态表格的创建
- 创建动态的表格
- 分别使用innerHTML和DOM在网页中动态生成表格的三种不同方法。
- 使用JavaScript获取不同时区的时间
- javascript 浏览器不同的一个差异
- 使用JavaScript和DOM动态创建表格
- 使用JavaScript和DOM动态创建表格
- 使用JavaScript和DOM动态创建表格
- 使用JavaScript和DOM动态创建表格
- ReentrantLock Fair 与 Unfair 的巨大差异
- ReentrantLock Fair 与 Unfair 的巨大差异
- HDU 4067
- sizeof() 使用大全
- 求数组中的最大和最小值
- struts2错误:The Struts dispatcher cannot be found.
- 求一个字符串中字符不重复的连续的子串
- 使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
- NYOJ 73 比大小
- 文本处理工具
- js 中break 与continue的区别
- 一维二维数组共用一次new
- 丢手帕问题java 实现
- Qt4设计自定义钟表控件(插件法)
- cat命令