![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ostatnimi dniami chyba panuje wysyp moich trudnych pytań, na które mało kto zna odpowiedzi, ale co tam.
![]() Mianowicie, mam element w DOM: Kod body -- tag ---- tag2 ------ #ident Czy uszczegółowanie selektora do postaci:
będzie lepiej rzutować na wydajność aniżeli samo:
? Z tego, co wiem, to ponoć ten drugi wystarczy, ale przyznam, że nie znam budowy engine'ów przeglądarek do wyszukiwania po DOM, dlatego pytam. ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
http://www.stevesouders.com/blog/2009/06/1...-css-selectors/
Cytat It’s clear that CSS selectors with a key selector that matches many elements can noticeably slow down web pages. Other examples of CSS selectors where the key selector might create a lot of work for the browser include:
Ale szczerze mówiąc nie przywiązywałbym do tego tak ogromnej wagi. Poza tym budując reguły według 1 zasady zarąbałbyś się na śmierć tworząc wszystkie możliwe zagnieżdżenia selektorów. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie do końca jest tak, jak tam napisano. Bowiem:
http://css-tricks.com/more-on-css-selector-performance/ + ludzie na Blipie mi uświadomili, że selektory są parsowane począwszy od prawej. Przeglądarka wyciąga wszystkie elementy pasujące do skrajnego prawego selektora, a potem już tylko filtruje wyciągnięte. Więc potwory w stylu:
Wyciągnie najpierw wszystkie element z dokumentu, dopiero potem sprawdzi dla każdego, czy #subkontener jest rodzicem któregoś z nich. Zrujnowało to moje wiadomości o CSS, ale człowiek się przecież ciągle uczy. ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A jak ludzie z Blip-a Ci to udowodnili? Sprawdziłeś?
Poza tym wysłałeś link do prezentacji tego samego autora z którego wynika iż opcja pierwsza jest wolniejsza. Ten post edytował wookieb 21.10.2010, 20:52:31 -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat A jak ludzie z Blip-a Ci to udowodnili? Sprawdziłeś? Linki do MDC, to mało? -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Może zacznijmy od tego, że wydajności selektorów z pierwszego postu nie powinno się porównywać, ponieważ... są to dwa różne selektory (tj. wyłapują one inne elementy).
Co prawda nie mam tutaj nic na poparcie poniższej tezy (nawet nie jestem w pełni przekonany jej słuszności), ale z tego co się orientuję przeglądarki zapisują sobie swego rodzaju referencje do elementów posiadających identyfikatory (mowa oczywiście o dokumentach HTML) celem szybszego dotarcia do nich. Tak więc drugi selektor wymagałby jedynie odnalezienia odpowiedniej referencji, pierwszy natomiast dodatkowo wymagałby sprawdzenia czy reszta warunków selektora pasuje. Nie jestem jednak pewien czy taki mechanizm ma miejsce w przypadku CSSa (tutaj powód: http://www.jsfiddle.net/Gwr9E/ ) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 21:29 |