`

javascript几种操作表格方法的性能对比

阅读更多

 

本文转自:http://hi.baidu.com/jz1108/blog/item/81ebe6b4561c247b8ad4b2ef.html

 

一日,同事说他习惯用inserRow和insertCell方法操作table元素,并说这个效率要比createElement和appendChild来的高。我不信,于是做了如下试验:使用不同方式创建一个1000行X10列的表格,对比代码所耗时间。
   
方法一:使用insertRow和insertCell

var table = document.createElement("table");
document.body.appendChild(table);
for (var i = 0; i < 1000; i ++){
	var row = table.insertRow(table.rows.length);
	for (var j = 0; j < 10; j ++){
		var cell = row.insertCell(row.cells.length);
		cell.innerHTML = "(" + i + ", " + j + ")";
	}
}

以上代码执行时间为:172.688秒,整个过程中CPU占用率飙升到100%,IE也进入装死的状态。


方法二:使用createElement和appendChild

var table = document.createElement("table");
document.body.appendChild(table);
var tbody = document.createElement("tbody");
table.appendChild(tbody);
for (var i = 0; i < 1000; i ++){
	var row = document.createElement("tr");
	tbody.appendChild(row);
	for (var j = 0; j < 10; j ++){
		var cell = document.createElement("td");
		cell.innerHTML = "(" + i + ", " + j + ")";
		row.appendChild(cell);
	}
}

以上代码执行时间为:3.026秒,速度提高这么多。

 

当然这还不是最快的,请看方法三:

var htmls = [];
htmls.push("<table>");
for (var i = 0; i < 1000; i ++){
	htmls.push("<tr>")
	for (var j = 0; j < 10; j ++){
		htmls.push("<td>(" + i + ", " + j + ")</td>");
	}
	htmls.push("</tr>");
}
htmls.push("</table>");
document.getElementById("div1").innerHTML = htmls.join("");

这段代码执行时间是0.281秒。

 

可见使用innerHTML方式是最快的,createElement和appendhChild其次,最慢的是insertRow和insertCell。

分享到:
评论

相关推荐

    表格行合并的几种做法(javascript jQuery)

    本篇文章将探讨几种在JavaScript和jQuery中实现表格行合并的方法。 首先,我们理解表格的基本结构。HTML表格由`&lt;table&gt;`、`&lt;tr&gt;`(行)、`&lt;td&gt;`(单元格)和`&lt;th&gt;`(表头单元格)等元素构成。行合并通常涉及到`&lt;td&gt;...

    Javascript表格排序大全

    JavaScript是一种轻量级的脚本语言,广泛应用于网页和应用程序,其中表格排序是常见的一种功能需求,用于帮助用户以特定顺序查看和分析数据。 在JavaScript中实现表格排序,通常涉及到以下几个核心知识点: 1. DOM...

    js实现表格相同数据合并

    5. **优化性能**:在大规模表格中,遍历和操作DOM会消耗性能。因此,可以考虑使用节流或分块处理数据,以减少不必要的计算和DOM操作。 在给定的文件中,`test.html`可能是用来展示合并表格效果的示例页面,而`...

    JS商品对比效果 JavaScript特效 商品对比

    JavaScript作为一种强大的客户端脚本语言,常常被用来实现这种动态、交互的商品对比效果。下面我们将深入探讨如何利用JavaScript实现这样的功能。 首先,我们需要理解商品对比的基本流程。用户通常会选择几件感兴趣...

    很灵活的javascript 表格排序 功能强大 可自定义排序规则

    总之,JavaScript的sorttable库提供了一种高效、灵活且易于定制的方式来实现表格排序,无论是在桌面端还是移动端,都能为用户带来流畅的交互体验。通过掌握和运用这一工具,开发者可以提升网页应用的数据管理能力,...

    js表格无缝滚动效果

    在网页设计中,表格是一种常见的数据展示方式,但当表格内容过多时,用户滚动查看所有信息可能会变得不便。为了提供更好的用户体验,可以采用JavaScript(js)来实现表格的无缝滚动效果,让表格像一个无边界的容器...

    js高级表格排序 教程&使用方法

    总结来说,实现JavaScript表格排序主要涉及以下几个步骤: 1. 给表格添加ID和事件处理器。 2. 编写`sortTable`函数,处理数据类型转换和排序逻辑。 3. 使用文档碎片优化DOM操作。 4. 针对非文本类型的数据,如图片,...

    JavaScript产品参数对比功能

    JavaScript产品参数对比功能是网页应用中常见的一种设计,它允许用户在不同的产品之间进行详细的特性比较,以便于做出购买决策。这种功能广泛应用于电子商务、软件选型和其他需要展示多维度信息的场景。在本文中,...

    javascript合并单元格

    - **属性与方法**:对于表格单元格,我们可以通过`rowSpan`属性来控制单元格跨越多行显示,通过`deleteCell()`方法来删除某个单元格。 #### 三、代码解析 接下来,我们将逐步分析提供的代码片段,以更好地理解其...

    jsp页面表格排序 js文件

    `jsp页面表格排序 js文件`的核心在于JavaScript的实现,这可能包括以下几个关键技术点: 1. **DOM操作**:JavaScript通过Document Object Model (DOM)与HTML页面交互,修改表格结构。当用户点击表格的列头时,我们...

    javascript 拖动表格行实现代码

    通过上述知识点,我们了解到实现JavaScript拖动表格行需要对DOM操作有一定的了解,包括事件处理、节点操作和兼容性处理等。通过合理利用原生JavaScript API,可以实现一个高效且用户友好的拖动交互体验。在实际开发...

    Javascript经典例子

    在这个"JavaScript经典例子"中,我们将探讨几个关键的知识点,包括如何不使用脚本实现图层的隐藏和显现,表格操作控制,以及表格全功能的演示,特别是捕捉按键的实现。 首先,让我们来讨论如何不使用脚本实现隐藏和...

    js表格排序

    总的来说,JavaScript表格排序是一个涉及DOM操作、数组排序、事件处理和性能优化等多个方面的综合实践,对于提升网页交互性有着重要作用。通过学习和掌握这些知识点,你可以创建出更加动态和用户友好的数据展示页面...

    表格列过滤功能 [系列1]

    JavaScript允许我们动态地操作DOM(文档对象模型),实现实时更新表格内容,例如添加或移除过滤条件。 具体到“工具”标签,这可能意味着我们正在使用的是一种库或者框架,如jQuery、React、Vue等,这些工具可以...

    javascript日历控件2

    JavaScript中的`Date`对象提供了一系列的方法来创建、比较和操作日期,如`new Date()`, `getFullYear()`, `getMonth()`, `getDate()`等。`calender.js`可能会利用这些方法生成当前月份的日历视图,或者根据用户输入...

    可以拖动行头和列头的表格

    "可以拖动行头和列头的表格"是一个重要的功能,它为用户提供了一种自定义视图和优化数据浏览体验的方式。这个特性通常应用于数据分析、报告展示以及各种管理界面,让用户能够根据自己的需求调整列宽,从而更方便地...

    JS 做的表格数据排序。。。。。。

    1. **DOM操作**:JavaScript需要能够获取到表格元素,如`&lt;table&gt;`, `&lt;thead&gt;`, `&lt;tr&gt;`, 和 `&lt;th&gt;`,这通常通过DOM(Document Object Model)接口完成。例如,`document.getElementById`, `document....

    javascript实现的日历

    1. **DOM 操作**:在JavaScript中,你需要通过DOM(Document Object Model)来操作页面上的元素,如创建一个新的日历表格,或者在特定日期上添加事件标记。这通常涉及到`document.createElement()`,`appendChild()`...

    html表格table的表头排序,js代码fastunit使用案例

    3. **执行排序**:使用JavaScript的数组方法(如`sort()`)对数据源进行排序,根据列的值进行比较。 4. **更新表格**:将排序后的数据重新渲染到表格中,通常需要遍历数组并创建新的`&lt;tr&gt;`元素。 FastUnit库虽然...

    js循环表格,在开始循环行列之前数据已经指定数据在单元格的位置:(第几行,第几列),该如何循环?.pdf

    在JavaScript中,创建一个带有特定数据布局的表格时,可能会遇到一种情况,即在开始循环填充数据之前,每个数据项已经指定了它应该出现在表格的哪个位置(即第几行第几列)。这种情况通常涉及到更复杂的表格布局,...

Global site tag (gtag.js) - Google Analytics