jQuery belge.createElement eşdeğer?
Bazı eski JavaScript kodu yeniden düzenleme yapıyorum ve DOM manipülasyon çok şey var.
var d = document;
var odv = d.createElement("div");
odv.style.display = "none";
this.OuterDiv = odv;
var t = d.createElement("table");
t.cellSpacing = 0;
t.className = "text";
odv.appendChild(t);
Eğer bu jQuery kullanarak yapmanın daha iyi bir yolu varsa bilmek isterim. Deniyorum:
var odv = $.create("div");
$.append(odv);
// And many more
Ama eğer bu herhangi bir iyi olup olmadığından emin değilim.
CEVAP
burada "" çizgi. bir örnek
this.$OuterDiv = $('<div></div>')
.hide()
.append($('<table></table>')
.attr({ cellSpacing : 0 })
.addClass("text")
)
;
GüncellemeHala çok trafik alır beri Bu yazı güncellemek istedim. Yeni unsurlar yaratarak $("<div>")
vs $("<div></div>")
vs $(document.createElement('div'))
ile ilgili bazı tartışmalar var aşağıda, yorum olarak "" en iyi
Birlikte a small benchmark, koydum ve burada kabaca yukarıdaki seçenekleri 100,000 kez tekrar sonuçları:
1.4, 1.5, 1.6 jQuery
Chrome 11 Firefox 4 IE9
<div> 440ms 640ms 460ms
<div></div> 420ms 650ms 480ms
createElement 100ms 180ms 300ms
bir WordPress kullanmak 1.3
Chrome 11
<div> 770ms
<div></div> 3800ms
createElement 100ms
bir WordPress kullanmak 1.2
Chrome 11
<div> 3500ms
<div></div> 3500ms
createElement 100ms
Bu büyük bir sürpriz değil sanırım, ama document.createElement
en hızlı yoludur. Tabii ki, önce git ve başla yeniden düzenleme tüm kod temeli, unutma ki farklar bahsediyoruz burada (tüm ama arkaik sürümleri jQuery) eşit bir ekstra 3 milisaniyebinlerce elemanları başına.
Güncelleme 2
JQuery 1.7.2 için güncelleştirilmiş ve muhtemelen ilkel benim kriterler biraz daha bilimsel olan JSPerf konusunda kriter koymak, şimdi crowdsourced olabilir plus!
(belge)$.jQuery olmadan hazır eşdeğer...
jQuery - kötü birden fazla belge) $var...
(belge)$.() 'I doğru bir şekilde iPhon...
Tüm jquery olaylara bağlı olmalı $(bel...
Belge kullanmalıyım.createDocumentFrag...