DOM操作 (Manipulation)
在jQuery 1.4里一系列的DOM操作方法的性能都有巨大的提升。
.append(), .prepend(), .before(), and .after()的性能提高了。
.html()的性能提高到以前的3倍。
.remove()和.empty()的速度則達(dá)到以前的4倍.
新方法: .detach() (.detach() 文檔, Commit)
detach()將一個(gè)元素從DOM里移除, 但是并不卸載關(guān)聯(lián)的事件處理函數(shù)。這個(gè)方法可用于暫時(shí)性的將一個(gè)元素移除,執(zhí)行相關(guān)操作,然后返回。 var foo = $("#foo").click(function() { // 相關(guān)操作 }); foo.detach(); // foo保留了相關(guān)處理函數(shù) foo.appendTo("body");
新的unwrap()方法 (documentation, commit)
unwrap()方法拿到一個(gè)已知的父元素的子元素,然后將父元素用子元素替換。(譯注: 將子元素從”包裹”里拿出來, 因名unwrap)。如此這般: <body> <div> <p>annie</p> <p>davey</p> <p>stevie</p> </div> </body> $('div').unwrap(); <body> <p>annie</p> <p>davey</p> <p>stevie</p> </body>
domManip方法里的緩存 (commit)
jQuery會(huì)將jQuery("<div>")和.after("<div>")一類方法創(chuàng)建的節(jié)點(diǎn)記入緩存。這樣, 對于利用這些方法, 使用字符串進(jìn)行DOM操作的頁面,性能將有極大的提高。
無連接的節(jié)點(diǎn)間的before, after, replaceWith操作 (commit)
現(xiàn)在你可以對還沒有放置到DOM Tree上的節(jié)點(diǎn)進(jìn)行before, after, 和replaceWith的操作了。意味著你可以先對節(jié)點(diǎn)進(jìn)行復(fù)雜的操作, 待完成后再放到合適的DOM位置上。這樣也能盡量避免操作過程中造成重新排版。 jQuery("<div>").before("<p>Hello</p>").appendTo("body")
.clone(true) 也會(huì)復(fù)制關(guān)聯(lián)數(shù)據(jù) (clone 文檔, commit)
1.3版中, .clone(true)雖然也是深度復(fù)制, 但是沒有復(fù)制關(guān)聯(lián)的數(shù)據(jù)。1.4版里,它則會(huì)復(fù)制數(shù)據(jù), 同時(shí)還包括所有的事件。這點(diǎn)上和jQuery.extend在語義想同的, 所以普通對象和陣列會(huì)被復(fù)制, 但是自定義的對象則不會(huì)。
出處:帕蘭映像
責(zé)任編輯:moby
上一頁 jQuery 1.4官方文檔中文版 [5] 下一頁 jQuery 1.4官方文檔中文版 [7]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|