日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

JavaScript AppendChild 引发的思考

發(fā)布時(shí)間:2023/12/31 javascript 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript AppendChild 引发的思考 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
????? 昨天讓同事用js搞了個(gè)浮動(dòng)圖片功能,這樣就每次把些圖片直接貼過來了,節(jié)省了篇長(zhǎng)。但是看到代碼中AppendChild,感覺以前和js同事交流過AppendChildinnerHtml性能方面的話題,嗯,找了下一些我的js收集冊(cè)(也就是OneNote啦),呵呵
其實(shí)是這樣的,下面進(jìn)入
AppendChildinnerHtml的性能隨語(yǔ):
直接看代碼,就可以了。

innerHTML:
<body>
</body>
<script>
var?starttime?=?new?Date();
for(i?=?0?;?i?<?100?;?i?++){
????document.body.innerHTML?
+=?"<input?type='text'?value='"?+?i?+?"'>";
}

alert(
new?Date()?-?starttime);
</script>
知道測(cè)試時(shí)間是比較長(zhǎng),大約
"1000"

appendChild:
<body>
</body>
<script>
var?starttime?=?new?Date();
for(i?=?0?;?i?<?100?;?i?++){
????ds?
=?document.createElement("input");
????ds.type?
=?"text";
????ds.value?
=?i;
????document.body.appendChild(ds);
}

alert(
new?Date()?-?starttime);
</script> ?

其實(shí)以上例子還可以在改進(jìn)一下,因?yàn)槠唇幼址?#xff0c;重新解析html方面的消耗,所以速度就下來。

innerHTML:
<body>
</body>
<script>
var?starttime?=?new?Date();
var?html?=?[]
for(i?=?0?;?i?<?100?;?i?++){
????html.push(
"<input?type='text'?value='")
????html.push(i)
????html.push(
"'>")
}

document.body.innerHTML?
=?html.join("")
alert(
new?Date()?-?starttime);
</script>
時(shí)間大約為”
20

甚至如果你有更快的話,
<body>
</body>
<script>
var?starttime?=?new?Date();
var?a?=?[];
for(i?=?0?;?i?<?100?;?i?++){
????a[i]
=?"<input?type='text'?value='"?+?i?+?"'>";
}


document.body.innerHTML??
=?a.join("");
alert(
new?Date()?-?starttime);
</script>
? 事實(shí)上,當(dāng)不同情況下,速度之比是不同的,

如:當(dāng)一次性加載大量且復(fù)雜的網(wǎng)頁(yè)元素時(shí),用innerHTMLappendChild()速度要快的

而當(dāng)每次只加載幾個(gè)網(wǎng)頁(yè)元素,并且要頻繁加載時(shí),此時(shí)appendChild()innerHTML就快了。Clear


最后附上浮動(dòng)圖片的代碼:
<script>
function?link$onmouseover(){
????
var?linkimg?=?this.linkimg;
????
if(!linkimg){
????????linkimg?
=?document.createElement("img");
????????
with(linkimg){
????????????src?
=?this.href;
????????????style.position?
=?"absolute";
????????????style.left?
=?this.style.left;
????????????style.top?
=?this.style.top;
????????}

????????document.body.appendChild(linkimg);
????????
this.linkimg?=?linkimg;
????}

????linkimg.style.display?
=?"";
}

function?link$onmouseout(){
????
var?linkimg?=?this.linkimg;
????
if(linkimg){
????????linkimg.style.display?
=?"none";
????}

}

</script>?
<a?id="link1"?href="圖示地址">?link1?</a><br?/>
<a?id="link2"?href="imagesCAZ4JHCC.jpg">?link2?</a>
<script>
var?link1?=?document.getElementById("link1");
var?link2?=?document.getElementById("link2");
link1.onmouseover?
=?link$onmouseover;
link1.onmouseout?
=?link$onmouseout;
link2.onmouseover?
=?link$onmouseover;
link2.onmouseout?
=?link$onmouseout;
</script>

轉(zhuǎn)載于:https://www.cnblogs.com/RuiLei/archive/2007/10/19/930079.html

總結(jié)

以上是生活随笔為你收集整理的JavaScript AppendChild 引发的思考的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。