最近遇到js的效率问题,是关于在页面中新增元素的问题。
假设我们有页面如下:
复制代码 代码如下:
<HTML>
<HEAD>
</HEAD>
<BODY>
<div id="div1"></div>
</BODY>
<script>
// 脚本位置
</script>
</HTML>
现在,我们要往div1中添加对象,大家都知道在为web页面增加一个元素时可以使用如下代码:
//方法1
div1.innerHTML = '<a href="">测试</a>';
或者:
//方法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;i<100;i++){
var str="<div id='div_'"+i+"' style='width:100px; height:20px;background-color:#eee'>test</div>";
container.innerHTML += str;
}
alert(new Date - staDate);
}
//方法2
function init(){
var staDate = new Date();
var doc = window.document;
for(var i=0;i<100;i++){
var 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);
}
其页面中有:
<div id="container"></div>
<input type="button" value="start" onclick="init();" />
从执行效果来看方案2要比方案1快10倍左右,到底这是不是真的呢?其实上面的测试代码是有待商榷的,且看其方法1中的循环代码:
复制代码 代码如下:
for(var i=0;i<100;i++){
var str="<div id='div_'"+i+"' style='width:100px; height:20px;background-color:#eee'>test</div>";
container.innerHTML += str;
}
其中有很多字符串操作,而且除了使用+号来连接字符串外,还使用了+=操作符,这就是问题的所在了,在javascript中这种操作字符串的做法是严重影响效率的,所以使用上面的方法来测试createEmenent和innerHTML的效率对innerHTML是不公平的, 据此看来很可能是字符串操作吃掉了innerHTML的性能,于是写了下面的测试代码:
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
经测试发现:
1、在创建的对象较少(0-大约10左右)时,innerHTML和createElement效率差不多,测试值悠忽不定;
2、在创建对象多于20时,innerHTML要比createElement效率高很多,平均测试差不多createElement耗时是innerHTML的两倍。
总结:其实效率也在于编写的代码,在知道可用的API的效率后,怎么编写代码也是非常重要的,否则应由的执行效率不能体现出来,就如上面从网上搜到的那些代码,得出一个与事实相悖的结论。
相关推荐:
GPT-3.5可以免费使用吗?AI未来的无限可能,ai烧猪
seo涉及什么内容,seo主要包括 ,法医使用ai
ChatGPT故障:科技背后的秘密与应对策略,华为什么手机带ai功能
SEO经营:助力企业腾飞的秘密武器,靖边百度关键词排名
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广
AI免费生成文本,内容创作新篇章
ChatGPT崩溃!用户反馈网页端无法访问,修复急需,ai院子
“关键词指白”:揭秘如何通过精准关键词优化实现流量暴增,全面分析网站seo
seo网站代码是什么,网站专业术语中seo意思是什么 ,拟人ai制作
AI写作免费一键生成5000字:高效创作的革命性工具
ChatGPT服务器坏了?了解背后的技术与应对策略,AI模块代表
为什么“蜘蛛弛查询”能成为提升网站排名的秘密武器?,惠州网站推广v1戈seo24
用AI写一篇文章,如何提升你的写作效率与创意
主题导航-引领互联网世界的智慧之路,大渡口网站建设方案
SEO场景下的数字营销:如何通过精准优化提升网站流量,陕西融发建设集团网站
目前国内最好的AI人工智能软件:未来新篇章
在线AI文章:为您打造全新内容创作体验
为什么网站要做seo,网站做seo的目的是什么 ,ai初选
SEO观看:如何通过优化提升您的网站流量和品牌影响力,龙里网络营销推广
如何查文章AI率?全面解析AI文章检测工具及技巧
互联网快照:记录数字时代的每个瞬间,全网seo怎么优化内容
“洗稿技巧如何让你的文章脱颖而出,轻松提升内容创作水平!”,台州椒江seo企业排名
ChatGPT无法完全显示?你可能忽略了这些令人惊讶的细节!,朵朵ai绘画
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
SEO立刻:快速提升网站排名,带你走在搜索引擎前沿,网站建设怎么推广好做
用AI写科普文章:科技改变写作的未来
SEO优化如何提升网站排名,驾驭搜索引擎流量,三亚网站推广方法
用AI写文章查重率高吗?揭秘AI写作与查重检测的关系
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai
ChatGPT网页版内容显示不全的解决方案:如何轻松解决问题?,课件ai
SEO代做:让你的企业轻松登顶搜索引擎,快速提升曝光率,seo 提高注册量
SEO大神如何在激烈的互联网竞争中脱颖而出?,网页设计和网站建设试题
seo需要会什么技术呢,seo需要会什么技术呢知乎 ,红色框ai
ChatGPT4账号共享-让AI助力你的学习与工作,轻松提升效率,ai巨无霸
【SEO优化全攻略】提升网站流量的终极秘籍,带你轻松玩转搜索引擎优化!,金融网站推广维护
SEO优化与SEM广告:提升品牌曝光与流量的双重利器,ai接回头
优化软件:让电脑性能焕然一新,提升效率的秘密武器,大理网站推广招聘信息最新
OpenAI智能诊断医疗-开启精准医疗新纪元,跟侯维静学ai
SEM做得好可以取代SEO吗?浅析两者的异同与未来趋势,王道ai
SEO与网络推广机构:如何选择最适合你的数字营销合作伙伴,ai写作软件性价比高吗
SEO希望:如何通过SEO优化实现网站突破,迈向成功之路,品牌网站推广软件
SEO要好,网站流量翻倍的关键秘诀,品牌网站建设关键词优化
360AI写作怎样?助力创作的新风尚,ai到访
seo监控什么意思,seo数据监控 ,ai panda眼镜架
AI生成文章免费工具,让创作变得轻松又高效,ai安心健
AI免费写文章生成器高效写作新革命
产品seo什么意思,产品seo标题是什么 ,ai模仿张宇
“标题制造机”:颠覆内容创作的秘密武器,助你轻松打造吸引力十足的标题,景区线上推广用哪些网站
未来写作新模式文章撰写AI如何助力内容创作
互联网快排:助力企业网站流量爆发的秘密武器,西安网站建设找资源公司