摘要:所以文檔碎片其實就是一個臨時的倉庫。用文檔碎片就不會產(chǎn)生這種節(jié)點,引入方法,它的作用是創(chuàng)建一個文檔碎片,把要插入的新節(jié)點先插入它里面,然后再一次性地添加到中。代碼如下先創(chuàng)建文檔碎片先附加在文檔碎片中最后一次性添加到中
JavaScript中的文檔碎片 DocumentFragement 文檔碎片是什么:
如果我們要在一個ul中添加100個li,如果不使用文檔碎片,那么我們就需要使用append經(jīng)常100次的追加,這會導致瀏覽器一直不停的渲染,是非常消耗資源的。但是如果我們使用文檔碎片了,我們可以先將100個li添加到文檔碎片中,然后直接把這個文檔碎片追加到ul中即可。所以文檔碎片其實就是一個臨時的倉庫。
如下代碼在document.body中添加5個span:
for(var i=0;i<5;i++) { var op = document.createElement("span"); var oText = document.createTextNode(i); op.appendChild(oText); document.body.appendChild(op); }
對于少量的更新,一條條循環(huán)插入的運行也還可以。但是,當要向document中添加大量數(shù)據(jù)(比如1w條),如果像上面的代碼一樣,逐條添加節(jié)點,整個過程會十分緩慢,性能極差。
也可以建一個新的節(jié)點,例如div,先將span添加到div上,然后再將div添加到body:
var oDiv = document.createElement("div"); for(var i=0;i<10000;i++) { var op = document.createElement("span"); var oText = document.createTextNode(i); op.appendChild(oText); oDiv.appendChild(op); } document.body.appendChild(oDiv);
但這樣會在body中多添加一個div節(jié)點。用文檔碎片就不會產(chǎn)生這種節(jié)點,引入createDocumentFragement()方法,它的作用是創(chuàng)建一個文檔碎片,把要插入的新節(jié)點先插入它里面,然后再一次性地添加到document中。
代碼如下:
//先創(chuàng)建文檔碎片 var oFragmeng = document.createDocumentFragment(); for(var i=0;i<10000;i++) { var op = document.createElement("span"); var oText = document.createTextNode(i); op.appendChild(oText); //先附加在文檔碎片中 oFragmeng.appendChild(op); } //最后一次性添加到document中 document.body.appendChild(oFragmeng);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/101286.html
摘要:發(fā)布訂閱現(xiàn)在每個人應(yīng)該都用微信吧,一個人可以關(guān)注多個公眾號,多個人可以同時關(guān)注相同的公眾號。公眾號每周都會更新內(nèi)容,并推送給我們,把寫好的文章在微信管理平臺更新就好了,點擊推送,就相當于發(fā)布。 什么是MVVM MVVM——Model-View-ViewModle的縮寫,MVC設(shè)計模式的改進版。Model是我們應(yīng)用中的數(shù)據(jù)模型,View是我們的UI層,通過ViewModle,可以把我們M...
摘要:是一款可愛的小插件,將和瀏覽器的封裝到一起,解決了單純使用進行無刷新加載時對搜索引擎的不友好,并且節(jié)省了開支提高了瀏覽速度,明顯地優(yōu)化了用戶體驗。是提供的,是對瀏覽器歷史對象的增強。 showImg(https://segmentfault.com/img/remote/1460000007640529?w=1008&h=569); pjax 是一款可愛的 jQuery 小插件,將 a...
摘要:是一款可愛的小插件,將和瀏覽器的封裝到一起,解決了單純使用進行無刷新加載時對搜索引擎的不友好,并且節(jié)省了開支提高了瀏覽速度,明顯地優(yōu)化了用戶體驗。是提供的,是對瀏覽器歷史對象的增強。 showImg(https://segmentfault.com/img/remote/1460000007640529?w=1008&h=569); pjax 是一款可愛的 jQuery 小插件,將 a...
閱讀 1229·2021-11-24 09:39
閱讀 379·2019-08-30 14:12
閱讀 2592·2019-08-30 13:10
閱讀 2434·2019-08-30 12:44
閱讀 957·2019-08-29 16:31
閱讀 845·2019-08-29 13:10
閱讀 2434·2019-08-27 10:57
閱讀 3152·2019-08-26 13:57