JavaScript DOM节点添加性能对比:直接添加与容器预置

作者:寒星时间:2026-10-29 13:09:59浏览:585

本文通过实例对比两种JavaScript DOM节点添加方式的运行时长。第一种方法为先创建所有节点再添加到文档,第二种方法为预先添加空容器,随后每创建一个节点即添加到该容器中。测试结果显示,采用容器预置的方式在性能上优于直接添加到文档的方式,有助于提升页面渲染效率。

DOM节点添加方法概述

本文通过具体实例,详细解析了JavaScript中将DOM节点插入文档的几种常见方法,旨在为开发者提供实用的参考与借鉴。

两种添加策略的性能对比

文中对比了两种不同的操作策略及其运行耗时:第一种策略是先批量创建所有节点,随后统一添加到文档中;第二种策略则是先在文档中插入一个空的容器元素,之后每创建一个节点便立即将其追加到该容器内。经过实际测试验证,第二种策略的执行效率明显高于第一种。

具体的运行效果对比如下图所示:

DOM节点添加方法概述

实现该功能的具体代码示例如下:

代码实现示例


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>将DOM节点添加到文档实例</title>
</head>
<script type="text/javascript">
//第一种:先创建所有节点,再添加到文档
function createAdd(count)
{
  var start=new Date();
  var container=document.createElement("div");
  var obj=document.getElementById("main");
  for(var i=0;i<count;i++)
  {
    var node=document.createElement("div");
    node.style.position="absolute";
    node.style.left=(6+parseInt(Math.random()*100))+"px";
    node.style.top=(6+parseInt(Math.random()*100))+"px";
    container.appendChild(node);
  }
  obj.appendChild(container);
  var end=new Date();
  var duration=end-start;
  alert("第一种方式:"+duration+"ms");
}
//第二种:先添加到文档一个空容器,再创建所有接点,并分别添加到容器中
function addCreate(count)
{
  var start=new Date();
  var container=document.createElement("div");
  var obj=document.getElementById("main");
  obj.appendChild(container);
  for(var i=0;i<count;i++)
  {
    var node=document.createElement("div");
    node.style.position="absolute";
    node.style.left=(6+parseInt(Math.random()*100))+"px";
    node.style.top=(6+parseInt(Math.random()*100))+"px";
    container.appendChild(node);  
  }
  var end=new Date();
  var duration=end-start;
  alert("第二种方式:"+duration+"ms");
}
//检测输入的数据是否正确
function checkData()
{
  var number=parseInt(document.getElementById("count").value);
  return number;
}
//调用createAdd()函数
function callCreateAdd()
{
  var count=checkData();
  createAdd(count);
}
//调用addCreate()函数
function callAddCreate()
{
  var count=checkData();
  addCreate(count);
}
</script>
<body>
<h3>将DOM节点添加到文档实例</h3>
<hr style="border:1px solid #000000;" />
请输入一个整数:
<input type="text" id="count" name="count" />
<br />
<input type="button" id="createadd" name="createadd" value="第一种:先创建所有节点,再添加到文档方式的运行时长" onClick="callCreateAdd();" />
<input type="button" id="one" name="one" value="第二种:先向文档添加一个空容器,然后每创建一个节点,再添加到容器中方式的运行时长" onClick="callAddCreate();" />
<br />
<div id="main" style="position:absolute;"></div>
</body>
</html>

希望上述分析能对各位在JavaScript程序设计中的DOM操作有所帮助。

作者最新文章