JQuery執行DOM批量轉殖並插入的提效方法

2021-09-08 10:11:20 字數 1946 閱讀 2476

jquery clone方法可以實現對指定dom物件的快速複製,並插入文件中。 對於同一型別的物件往往需要按照同一樣式模板(html標籤**)複製n份並插入文件中,然後再將內容填入模板中,這就需要批量轉殖插入,例如你的部落格發表的若干篇文章,都具有相同的模板樣式(標題 + 內容摘要)。

設計簡單測試用例,對模板template(乙個div)進行clone並插入執行5000次,使用date.gettime來計算耗時(ms),使用chrome瀏覽器(33)測試耗時4107ms,下面給出**:

doctype html

>

<

html

>

<

head

>

<

script

src=""

>

script

>

head

>

<

body

>

<

div

id="template_div"

>heheiiiii

div>

<

script

>

varstart

=new

date().gettime();

for(

vari=0

; i<

5000

; i++

)

varend

=new

date().gettime();

alert(end

-start);

script

>

body

>

html

>

similar to other content-adding methods such as.prepend()and.before()

doctype html

>

<

html

>

<

head

>

<

script

src=""

>

script

>

head

>

<

body

>

<

div

id="template_div"

>heheiiiii

div>

<

script

>

varstart

=new

date().gettime();

//快取clone例項

vardomcache =;

for(

vari=0

; i<

5000

; i++)

$("body

"var

end

=new

date().gettime();

alert(end

-start);

script

>

body

>

html

>

為驗證該方法的在各個瀏覽器上的穩定性,使用上面兩則**,對三個主流瀏覽器做了對比試驗,結果如下表,對於ie瀏覽器處理效率有明顯提公升 9s(總體上時間較長,應該源於ie瀏覽器對js處理的低效):

單位(ms)

chrome33

ie8firefox

改進前4107

18235

2966

改進後636

9203

1006

DOM轉殖操作(深轉殖 淺轉殖)

深轉殖 轉殖元素內文字節點加上所有後輩元素節點 淺轉殖 轉殖元素本身,不轉殖文字節點和後輩節點 1.clonenode 接受乙個可選值為true或false的引數。true 表示轉殖元素和它的所有子節點。false表示轉殖元素但不包含它的子節點。通常,我們在實踐中用true,我從來沒有遇到過想要轉殖...

jQuery 轉殖物件

方法如下 淺層複製 只複製頂層的非 object 元素 var newobject jquery.extend oldobject 深層複製 一層一層往下複製直到最底層 var newobject jquery.extend true,oldobject 測試如下 var obj1 c var ob...

DOM節點操作 建立,增加,轉殖

建立新的元素節點 createelement x x 方法建立新的元素節點 xmldoc loadxmldoc books.xml newel xmldoc.createelement x x edition x xmldoc.getelementsbytagname r book 0 x.a ne...