2012-03-12 13 views
6

Czy ma ona niekorzystny wpływ na wydajność przeglądarki, aby przypisać nazwę klasy do atrybutu css klasy elementu, jeśli klasa nigdy nie została zdefiniowana?Wpływ zastosowania nazwy klasy CSS, która nie istnieje

Nie jest niczym niezwykłym używanie nazw klas dla selektorów z JQuery. Zwykle używam klasy, która jest zawsze używana do wybierania elementów i nigdy właściwie nie definiuje klasy.

Przyjmuję, że większość przeglądarek będzie szukała definicji klasy css i możesz w jakiś sposób sprowadzić wyszukiwanie, jeśli styl został zdefiniowany?

Rozumiem, że style css są kompilowane razem przed renderowaniem elementów strony. Dlatego ważne jest, aby zachować wszystkie definicje CSS i nie dzielić ich za pomocą znaczników skryptów, ponieważ powoduje to, że większość przeglądarek rekompiluje CSS za każdym razem, gdy są one mieszane z innymi definicjami. Konsekwencje tego mogą być na tyle poważne, aby umożliwić renderowanie strony przed zastosowaniem stylu.

Jednak, w praktyce, domyślam się, że różnica w wydajności między definiowaniem lub nie definiowaniem klasy CSS jest nieznaczna, jeśli w ogóle.

+0

jestem pewien efektu w nie definiując klasę, użyłem klasy jawnie z jQuery w ten sam sposób, w jaki odnosimy się i nigdy nie prowadził do żadnych problemów. Jedyne dane, które mam, to nie wydajność, ale użyteczność. Jeśli korzystasz z IDE, takiego jak studio graficzne lub inne, IDE będzie zgłaszać błąd, jeśli klasa nigdy nie została zdefiniowana i spróbujesz jej użyć, nawet z Jquery. Świetne pytanie btw. – ityler22

+0

Nie myślałem o intellisense ... dobry punkt :) –

+0

Miesiące później .. ten temat pojawił się na spotkaniu z moim menedżerem. On jest technicznym, ale nie jquery technicznym ... zapytał ... jeśli definiujesz te klasy, aby zastosować je do elementów ... skąd wiesz, że poprawnie zdefiniowałeś/zastosowałeś klasę ... Chodzi o to, że możesz zidentyfikować jedną i dokładnie jedną kontrola z identyfikatorem ASP, otrzymasz błąd kompilacji. Jednak jeśli mam Jquery datepicker Case 1 i 2 i staram się używać różnych selektorów klasy (tj. Różne daty min/maks), nie ma błędu czasu kompilacji. Wydaje się oczywiste, ale był to ważny punkt mojego szefa. –

Odpowiedz

6

Najprostszym sposobem, aby myśleć o tym pamiętać, że CSS jest stosowany do HTML, a nie HTML wywołanie selektorów CSS.

Gdy przeglądarka analizuje plik CSS, odczytuje wybierak od prawej do lewej, aby zobaczyć, gdzie zastosować style. Na przykład .foo ul {} sprawdzi wszystkie znaczniki ul na stronie, a następnie sprawdzi, czy są zawarte w .foo. Ponieważ jest on przetwarzany w ten sposób, dodatkowe, nieużywane klasy w kodzie HTML nie mają znaczenia. Sprawdza tylko identyfikatory i klasy określone w CSS.

1

Ponieważ atrybut class jest atrybutem HTML, można go wstawić bez problemów, jeśli nie jest wywoływany przez CSS lub Javascript. Może siedzieć całkiem szczęśliwie bez żadnych skutków ubocznych. Nie musi być wybierany przez CSS, może być użyty tylko przez JS.

Ten artykuł może pomóc zrozumieć więcej:

class (HTML attribute) @ sitepoint.com

Powiązane problemy