JQuery seçiciler geçişi tercih edilir?
$("#vacations").find("li").last()
$("#vacations li:last")
Daha iyi bir uygulamadır kullanarak?
Arka plan ve düşüncelerim:
Güzel bir interaktif try jQuery tutorial ile oynuyor ve diyor ki: görevlerden biri de bendim
Kodunuz üzerinden bakıyor gibi, bir başkası ile son tatil seçerken dikkat edin: ("#tatil li:last"). $ Şuna bir bakın ve düşünün, "Geçişi bu şekilde daha hızlı olur!" Bu düşünceler hareket, bu kod son li içinde bulmak için yeniden oluşturulması gerekir #tatil yerine geçişi kullanarak.
Neden bu kadar düşünüyorsun ki? Benim için seçiciler kullanım geçme den biraz daha yüksek seviyede görünüyor. Seçici belirterek olduğumda aklımda daha iyi ihtiyacım olan tek sonuç (geçici sonuçlar dönen gerek kalmadan) nasıl bir WordPress kullanmak için.
Kompozit seçiciler kullanarak ekstra yükü nedir? Seçiciler mantık geçerli uygulama sadece dize ayrıştırır ve geçişi API kullandığı için mi? Yavaş bir dize ayrıştırma? Gelecek bir uygulama geçici sonuçlar döndürmek için gerekli değildir, bu gerçeği kullanır ve geçişi daha hızlı olacak bir şans var mı?
CEVAP
Bu kadar kısa ve net cevap yok, ama kullandığınız :last
seçici ile ilgili olarak, Seçiciler API standart için özel bir uzantısı. Bu nedenle, geçerli .querySelectorAll
yerli yöntemi ile kullanmak için değil.
Cızırtı yapar .querySelectorAll
, ile seçici kullanmayı deneyin temelde ve eğer bir İstisna geçersiz bir seçici dolayı atar, tamamen JavaScript tabanlı bir DOM seçimi/filtreleme için varsayılan olacak.
:last
gibi seçiciler dahil olmak üzere, bunun anlamı, yerel kod ile DOM seçimi hızı artırmak değil neden olur.
Ayrıca, iyileştirmeler dahil böylece seçici ise çok basit, sadece bir KİMLİK ya da bir öğe adı, yerli getElementById
getElementsByTagName
kullanılacak olan son derece hızlı; genellikle daha hızlı daha querySelectorAll
.
Ve .last()
yöntem sadece Cızırtı filtreler normalde ne hangi tüm öğeleri, filtreleme yerine koleksiyonunda son öğeyi kapmak beri(en azından eskiden)bu da bir destek verecektir.
IMO, özel eşyaları uzak tutun. .querySelectorAll
hemen hemen her yerde artık, yalnızca standartlarla uyumlu seçiciler kullanarak gerçek avantajları vardır. Başka post DOM seçimi filtreleme yapmak.
$("#vacations").find("li")
, Bu durumda geçici sonuçları hakkında endişe. Bu getElementById
getElementsByTagName
, ardından kullanır ve son derece hızlı olacak.
Eğer gerçekten süper hız konusunda endişeleriniz varsa, DV kullanımınızı azaltmak ve DOM doğrudan kullanın.
Şu anda performans kaybı hakkında sizi uyarır :last
gibi: seçiciler için docs notları bulabilirsiniz
Son bir WordPress kullanmak bir uzantısıdır ve CSS belirtimi bir parçası değil, çünkü sorgular
:last
kullanarak performansı artırmakquerySelectorAll()
yerli DOM yöntemi tarafından sağlanan yararlanın.:last
öğeleri seçmek için kullanırken en iyi performansı elde etmek için, ilk elementler saf CSS seçici kullanarak seçin.filter(":last")
kullanın.
Ama .filter(":last")
iyi bir yedek olur ki katılmıyorum. Çok daha iyi bir set filtreleme yerine unsuru doğrudan hedef .last()
gibi yöntemler olacaktır. Onlar sadece insanların olmayan standartlarla uyumlu seçiciler kullanmaya devam etmek istiyor gibi bir his var içimde. IMO, daha iyi sadece onları unutuyorsun.
özel veri seçiciler jQuery HTML5 kulla...
Python kullanmak için daha çok tercih ...
Neden tire CSS seçiciler için tercih e...
Test oluşturun, deneyin-oluşturmak-cat...
Nasıl jquery seçiciler javascript deği...