天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Javascript createElement和innerHTML增加頁(yè)面元素的性能對(duì)比

最近遇到j(luò)s的效率問(wèn)題,是關(guān)于在頁(yè)面中新增元素的問(wèn)題。
假設(shè)我們有頁(yè)面如下:
復(fù)制代碼 代碼如下:
<HTML>
<HEAD>
</HEAD>
<BODY>
<div id="div1"></div>
</BODY>
<script>
// 腳本位置
</script>
</HTML>

現(xiàn)在,我們要往div1中添加對(duì)象,大家都知道在為web頁(yè)面增加一個(gè)元素時(shí)可以使用如下代碼:
//方法1
div1.innerHTML = '<a href="">測(cè)試</a>';
或者:
//方法2
var a = document.createElement('a');
a.innertText = '測(cè)試';
div1.appendChild(a);
在網(wǎng)上搜索到一個(gè)探討js效率問(wèn)題的文章,其大概意思是說(shuō)方法2的效率高,其對(duì)比代碼如下:
復(fù)制代碼 代碼如下:
// 方法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);
}

其頁(yè)面中有:
<div id="container"></div>
<input type="button" value="start" onclick="init();" />
從執(zhí)行效果來(lái)看方案2要比方案1快10倍左右,到底這是不是真的呢?其實(shí)上面的測(cè)試代碼是有待商榷的,且看其方法1中的循環(huán)代碼:
復(fù)制代碼 代碼如下:
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;
}

其中有很多字符串操作,而且除了使用+號(hào)來(lái)連接字符串外,還使用了+=操作符,這就是問(wèn)題的所在了,在Javascript中這種操作字符串的做法是嚴(yán)重影響效率的,所以使用上面的方法來(lái)測(cè)試createEmenent和innerHTML的效率對(duì)innerHTML是不公平的, 據(jù)此看來(lái)很可能是字符串操作吃掉了innerHTML的性能,于是寫了下面的測(cè)試代碼:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
經(jīng)測(cè)試發(fā)現(xiàn):
1、在創(chuàng)建的對(duì)象較少(0-大約10左右)時(shí),innerHTML和createElement效率差不多,測(cè)試值悠忽不定;
2、在創(chuàng)建對(duì)象多于20時(shí),innerHTML要比createElement效率高很多,平均測(cè)試差不多createElement耗時(shí)是innerHTML的兩倍。
總結(jié):其實(shí)效率也在于編寫的代碼,在知道可用的API的效率后,怎么編寫代碼也是非常重要的,否則應(yīng)由的執(zhí)行效率不能體現(xiàn)出來(lái),就如上面從網(wǎng)上搜到的那些代碼,得出一個(gè)與事實(shí)相悖的結(jié)論。

JavaScript技術(shù)Javascript createElement和innerHTML增加頁(yè)面元素的性能對(duì)比,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲欧美成人无码久久久 | 久久精品视频15人人爱在线直播 | 久久久无码精品亚洲日韩按摩 | 超碰国产人人做人人爽 | 中文字幕精品无码一区二区 | 大地影院日本韩国电影免费观看 | 久久99国产精品蜜臀AV | 欧美阿v天堂视频在99线 | 凌晨三点免费WWW | 一本道综合久久免费 | 成人免费观看www视频 | 诱咪youmiss| 成人综合在线视频免费观看完整版 | YELLOW视频直播在线观看高清 | 三级黄色在线看 | 国产亚洲中文字幕视频 | 亚洲欧美一区二区三区蜜芽 | 久久综合色一综合色88中文 | 国产偷抇久久精品A片蜜臀AV | 高清国产免费观看视频在线 | 51成人精品午夜福利AV免费七 | 两个人的视频免费 | 欧美日韩视频一区二区三区 | 97久久伊人精品影院 | 色一伦一情一区二区三区 | 日韩影院久久 | 伊人大香线蕉精品在线播放 | 一本到高清视频在线观看三区 | 国产午夜免费视频片夜色 | 床伴在线观看免费高清完整泰剧第四集 | 成人国产在线24小时播放视频 | 扒开她的黑森林让我添动态图 | 国产香蕉视频在线播放 | 欧美夜夜噜2017最新 | 国产91青青成人a在线 | 国产SUV精品一区二区883 | 亚洲 天堂 欧美 日韩 国产 | 四虎国产精品免费观看视频 | 久久人人爽人人片AV人成 | 老师的丝袜脚 | 伊人最新网址 |