方案三:一次性的DOM元素生成
這個方案讓我們創(chuàng)建一個元素的過程只觸發(fā)一次重解析。在創(chuàng)建完元素以后,先進(jìn)行所有需要的修改,最后才把它插入到DOM里面去就可以了
需求:
需求是這樣的,實(shí)現(xiàn)一個函數(shù),往一個指定的父元素上插入一個超鏈接元素。這個函數(shù)要同時可以設(shè)置這個超鏈接的顯示文字和樣式類。我們可以這樣做:創(chuàng) 建元素,插入到DOM里面,然后設(shè)置相應(yīng)的屬性。這就要觸發(fā)3次重解析。
function addAnchor(parentElement, anchorText, anchorClass) { var element = document.createElement('a'); parentElement.appendChild(element); element.innerHTML = anchorText; element.className = anchorClass; }
解決方案:
很簡單,我們只要把插入元素這個操作放到最后做,就可以只進(jìn)行一次重解析了。
function addAnchor(parentElement, anchorText, anchorClass) { var element = document.createElement('a'); element.innerHTML = anchorText; element.className = anchorClass; parentElement.appendChild(element); }
不過,要是我們想要插入很多個超鏈接到一個元素里面的話,那么這個做法還是有問題:每插入一個超鏈接還是要觸發(fā)一次重解析。下一個方案可以解決這個 問題。
出處:emu in blogjava
責(zé)任編輯:bluehearts
上一頁 加速Javascript:DOM操作優(yōu)化 [2] 下一頁 加速Javascript:DOM操作優(yōu)化 [4]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|