İlk çocuğu almak için farklı yaklaşımların hız farkını görmek için jsperf testi ekledim (toplam 1000+ çocuk)
göz önüne alındığında, notif = $('#foo')
jQuery yolları:
$(":first-child", notif)
- 4.304 ops / sn - en hızlı
notif.children(":first")
- 653 ops / sn -% 85 daha yavaş
notif.children()[0]
- 1.416 ops / sn -% 67 daha yavaş
Yerel yollar:
- JavaScript yerel '
ele.firstChild
- 4.934.323 ops / sn (yukarıdaki tüm yaklaşımlara kıyasla% 100 daha yavaş firstChild
)
- JQery'den yerel DOM ele:
notif[0].firstChild
- 4.913.658 ops / sn
Bu nedenle, en azından ilk çocuk için ilk 3 jQuery yaklaşımı önerilmemektedir (başka birçok durumda da böyle olacağını sanmıyorum). Eğer ilk çocuğu almak için bir jQuery nesnesi ve ihtiyaç varsa, o yerli DOM öğesi almak dizisi referans kullanarak, jQuery nesneden [0]
(önerilir) veya .get(0)
ve kullanımı ele.firstChild
. Bu, normal JavaScript kullanımıyla aynı sonuçları verir.
tüm testler Chrome Canary sürüm v15.0.854.0'da yapılır