Javascript createElement和innerHTML增加页面元素的性能对比_javascript技巧
最近遇到js的效率问题,是关于在页面中新增元素的问题。
假设我们有页面如下:
<script> <BR>// 脚本位置 <BR></script>
现在,我们要往div1中添加对象,大家都知道在为web页面增加一个元素时可以使用如下代码:
//方法1
div1.innerHTML = '测试';
或者:
//方法2
var a = document.createElement('a');
a.innertText = '测试';
div1.appendChild(a);
在网上搜索到一个探讨js效率问题的文章,其大概意思是说方法2的效率高,其对比代码如下:
// 方法1
function init(){
var staDate = new Date();
var doc = window.document;
for(var i=0;ivar str="
container.innerHTML += str;
}
alert(new Date - staDate);
}
//方法2
function init(){
var staDate = new Date();
var doc = window.document;
for(var i=0;ivar oDiv = doc.createElement("div");
var oText = doc.createTextNode("text");
oDiv.appendChild(oText);
container.appendChild(oDiv);
oDiv.style.id = "div_"+i;
oDiv.style.width = "100px";
oDiv.style.height = "20px";
oDiv.style.backgroundColor = "#eee";
}
alert(new Date - staDate);
}
其页面中有:
从执行效果来看方案2要比方案1快10倍左右,到底这是不是真的呢?其实上面的测试代码是有待商榷的,且看其方法1中的循环代码:
for(var i=0;ivar str="
container.innerHTML += str;
}
其中有很多字符串操作,而且除了使用+号来连接字符串外,还使用了+=操作符,这就是问题的所在了,在javascript中这种操作字符串的做法是严重影响效率的,所以使用上面的方法来测试createEmenent和innerHTML的效率对innerHTML是不公平的, 据此看来很可能是字符串操作吃掉了innerHTML的性能,于是写了下面的测试代码:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
经测试发现:
1、在创建的对象较少(0-大约10左右)时,innerHTML和createElement效率差不多,测试值悠忽不定;
2、在创建对象多于20时,innerHTML要比createElement效率高很多,平均测试差不多createElement耗时是innerHTML的两倍。
总结:其实效率也在于编写的代码,在知道可用的API的效率后,怎么编写代码也是非常重要的,否则应由的执行效率不能体现出来,就如上面从网上搜到的那些代码,得出一个与事实相悖的结论。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在当前智能手机市场上,处理器可谓是各大手机厂商争夺的焦点之一。作为手机的“大脑”,处理器的性能直接影响到手机的运行速度、多任务处理能力以及游戏体验等方面。目前,麒麟8000处理器作为华为旗舰手机的配备,备受关注。那么,它与骁龙处理器相比,究竟有何优劣呢?首先,从性能方面来看,麒麟8000处理器采用了最新的台积电5nm工艺制造,拥有更加先进的制程技术,提升了能

vivoX100和vivoX100Pro性能对比分析随着智能手机市场的竞争日益激烈,各大品牌不断推出新款产品来满足消费者需求。vivo作为一家备受关注的手机品牌,近年来推出了众多备受好评的产品,其中vivoX100和vivoX100Pro是备受期待的新品。两款手机在外观设计、性能配置、拍照功能等方面有何不同?今天我们就来对比分析vivoX100

苹果处理器与骁龙8gen2对比分析随着移动智能设备的不断发展,处理器作为设备性能的核心组件,一直备受关注。苹果公司和高通公司一直是移动处理器领域的领军者,分别推出了自家的处理器产品,分别是苹果处理器和骁龙处理器。其中,苹果处理器以其强大的性能和出色的功耗控制而著称,而高通骁龙处理器则以其优秀的通信技术和多功能性而赢得了用户的青睐。本文将对苹果处理器和骁龙8g

天玑8200与骁龙的性能对比:究竟孰强近年来,随着智能手机市场的日益竞争激烈,各大芯片厂商也在不断地推陈出新,力求在性能上取得更大突破。其中,联发科的天玑8200系列和高通的骁龙系列被广泛认为是当前智能手机市场上最为出色的芯片之一。那么,在天玑8200和骁龙之间,究竟孰强呢?今天我们就来对这两款处理器进行性能对比,一探究竟。首先,让我们先来了解一下天玑820

今年初,当Microsoft和Canonical发布Windows10Bash和Ubuntu用户空间,我尝试做了一些初步性能测试UbuntuonWindows10对比原生Ubuntu,这次我发布更多的,关于原生纯净的Ubuntu和基于Windows10的基准对比。Windows的Linux子系统测试完成了所有测试,并随着Windows10周年更新放出。默认的Ubuntu用户空间还是Ubuntu14.04,但是已经可以升级到16.04。所以测试首先在14.04测试,完成后将系统升级升级到16.04

MySQL与MongoDB:两个数据库系统的性能对比随着互联网的发展和数据量的不断增长,数据库的性能和可伸缩性变得愈发重要。MySQL和MongoDB是两个常用的数据库系统,它们在处理大数据量和高并发请求时有着不同的表现。本文将对MySQL和MongoDB进行性能对比,并通过代码示例来说明它们的差异。MySQL是一种关系型数据库,以其稳定性和成熟的特性而著名

在移动互联网时代,智能手机已经成为人们生活中不可或缺的一部分,而作为智能手机的核心之一,处理器的选择对手机性能起着至关重要的作用。目前市场上最为知名的处理器厂商包括高通(Qualcomm)、华为(HiSilicon)等,其中高通的骁龙处理器一直以来都备受推崇。而最近华为发布了自家的麒麟8000处理器,备受关注。那么,麒麟8000究竟能否击败骁龙处理器?它的性

大家期待的win10正式版已经发布啦,对于正在使用win7的同学来说肯定一直在纠结到底要不要将电脑系统升级到win10,升级后会不会比win7系统更好?是否支持常用的所有软件?win7和win10哪个好?他们的区别又是什么?对此,小编给出了win10与win7对比的一些解答。微软推出最新win10系统,很多电脑用户对Win10也甚是关注。大家也疑惑,windows10和win7有什么区别?win7和windows10哪个会比较好用。Win7系统稳定安全是目前使用用户最多,也是最受欢迎的Windo
