SORU
26 NİSAN 2011, Salı


Neden tarayıcılar için CSS seçiciler Uyumlu mu?

CSS Seçiciler soldan sağa tarayıcı motorları tarafından eşleştirilir. Onlar ilk çocukları bulmak ve sonra da ailelerini eğer kural parçaların geri kalanı onlar Maç olmadığını görmek için kontrol edin.

  1. Neden bu?
  2. Spec dediği için mi?
  3. Eğer sağdan sola doğru değerlendirilmiş olsaydı, nihai düzenini etkiler mi?

Bana bunu yapmak için en kolay yolu elemanların az sayıda seçiciler kullanın. Kimlikleri ilk sadece 1 element dönmelidir gibi). Belki sınıfları veya düğümleri en az sayıda olan bir öğe — örneğin sadece doğrudan başvurular yayılan herhangi bir kural ile bu düğüme git sayfasında bir yayılma olabilir.

Burada bazı bağlantılar benim iddialarını yedeklemek

  1. http://code.google.com/speed/page-speed/docs/rendering.html
  2. https://developer.mozilla.org/en/Writing_Efficient_CSS

Bu şekilde birçok üst olabilir) bütün çocukların yerine bir tane olması gereken bir çocuğun tüm ailesi bakmak zorunda kalmamak için yapılır gibi geliyor. Eğer DOM derin değilse bile sadece RTL birden fazla eşleşen yerine seviye başına tek bir düğüm olurdu. Is it easier/faster to evaluate CSS selectors LTR or RTL?

CEVAP
28 NİSAN 2011, PERŞEMBE


Unutmayın, ne zaman bir tarayıcı yapıyor seçici eşleşen sahip bir öğe (örneğin, bir çalışan için stili belirlemek için) ve tüm kurallara ve seçiciler ve ihtiyaçları bulmak için hangi kuralları aynı eleman. Bu sadece bir seçici ve seçici eşleşen tüm öğeleri bulmak için gereken her zamanki jQuery şeyi farklı diyorlar.

Eğer tek seçici ve seçici karşılaştırmak için yalnızca bir öğe varsa, o zaman soldan sağa bazı durumlarda daha mantıklı. Ama bu kesinlikle değildeğiltarayıcının durum. Tarayıcı ya da her neyse ve bir stil ve 10.000 kurallar stil (bu sayı uydurmuyorum) koyar Gmail için çalışıyor <span> Gmail işlemek için çalışıyor.

Bu durum özellikle, tarayıcı düşünürsek en bakıyoryoksöz konusu öğe maç. Yani sorun olur bir karar, bir seçici uymuyor olabildiğince hızlı; eğer bunu gerektirir biraz ekstra iş durumlarda bunu maç kazandın nedeniyle tüm çalışmaları kaydedin durumlarda bu maç yok.

Eğer sadece bir öğe karşı seçici sağdaki parçası eşleştirerek başlarsanız, o şansı bitti maç ve olmayacak. Eğer eşleşme varsa, daha fazla çalışır, ancak çoğu durumda o kadar büyük değil, hangi ağaç derinliği, orantılı yapmalısın.

Diğer taraftan, eğer seçici ucuna eşleştirerek başlarsanız... sana karşı maç? DOM yürümeye başla, eşleşebilecek düğümler için arayan var. Hiçbir şey o en soldaki bölümü eşleşen olduğunu keşfetmek biraz zaman alabilir.

Tarayıcılar sağdan maç, bariz bir başlangıç noktası verir ve aday seçiciler en çok kurtulmak sağlar çok hızlı bir şekilde. Gördüğünüz bazı veriler http://groups.google.com/group/mozilla.dev.tech.layout/browse_thread/thread/b185e455a0b3562a/7db34de545c17665 (çok önemli bir nottur kafa karıştırıcı), ama işin iyi tarafı bunun için Gmail özellikle iki yıl önce, 70% (kural, element) çift olabilir karar kuralı eşleşmiyor sonra sadece muayene etiket/sınıf/kimlik parçaların en sağdaki seçici için kural. Mozilla pageload performans test paketi için karşılık gelen sayı 72% idi. Gerçekten tüm kuralları o 2/3 kurtulmak mümkün olduğunca çabuk almak için denemeye değer ve sadece kalan 1/3 eşleşen endişelenecek.

Tarayıcıların bile kesinlikle maç olmayacak bu maç için çalışıyor önlemek için diğer iyileştirmeler olduğunu da unutmayın. Örneğin, en sağdaki seçici bir kimliği vardır ve bu kimliği yok maç öğenin kimliğini, o zaman olacak hiçbir girişim için eşleşen seçici karşı bu elemanı hiç Gecko: küme "seçiciler ile Kimlikleri" bu teşebbüs gelir bir karma tablo arama elemanın KİMLİĞİ. Bu eşleştirme çok iyi bir şans var olan kuralların p'tirhalasadece etiketi düşündükten sonra maç/sınıf/sağdaki seçici kimliği yok.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • TantalizingTrance

    TantalizingT

    15 ŞUBAT 2009
  • WOSU Public Media

    WOSU Public

    23 AĞUSTOS 2007