2012-02-27 9 views
7

Bundan önce, ilk hariç tüm öğeleri seçmek için her zaman gt seçicisini kullandım. Şimdi bana daha zarif görünen bir çözüm buldum. :gt(0) yerine :not(:first) kullanmaktır.
Bu seçicilerin performansında herhangi bir farklılık var mı ve hangisini kullanmayı önerirsiniz?: gt (0) vs: değil (: ilk) vs .slice (1)

DÜZENLEME: Belirtildiği gibi Felix King, .slice(1), ilk hariç tüm öğeleri seçmek için başka bir seçenektir. Yani hangisi daha hızlı?

+2

Testi it.http: //jsperf.com/ – xdazz

+8

Ayrıca (1) 'yerine özel bir seçici' .slice deneyebilirsiniz . –

+0

Her ikisi de yavaştır, @FelixKling tarafından önerilen yöntem en hızlı olanıdır. –

cevap

10

Biraz profil oluşturma zamanı! spans ve 10.000 yineleme olarak adlandırılan bir değişkene önbelleğe alınan on <span> s boş bir sayfa verildiğinde, spans.filter(':gt(0)') için 824ms ve spans.not(':first') için 1276ms elde ediyorum.

Şekil ben hiç önemli değil öneririm 1sec hedefi vurmak için 10k yinelemeleri yapmak zorunda düşünüldüğünde 11.

Firefox'ta console.time() ve console.timeEnd() kullanılarak elde?

http://jsperf.com/select-all-but-first-42

dilim yöntemi en hızlı çıkıyor:

+0

Bazı yorum yapanların önerdiği @Felix Kling'in dilim yönteminin bir karşılaştırmasını eklemek ister misiniz? – Chris

+1

Elbette! 'Slice (1)' metodunu kullanarak aynı test 79ms olarak çıkar - yaklaşık olarak 10 kat daha hızlı:: gt (0) ' –

+0

Bunu düşündüm: değil: İlk önce daha hızlı çalışır, test için teşekkürler. Ve dilim (1) karşılaştırma için +1. –