CSS musi przejść przez stosunkowo złożony rurociąg, podobnie jak HTML i JavaScript. Przeglądarka musi pobrać pliki z serwera, a następnie przejść do analizowania i stosowania ich do DOM. Ze względu na ekstremalne poziomy optymalizacji proces ten jest zwykle dość szybki - dla mniejszych projektów sieciowych nie opartych na ramach CSS zwykle stanowi tylko niewielką część całkowitej zużycia zasobów.
Framework zdenerwują tę równowagę. Uwzględnij stos GUI JavaScript, taki jak jQuery UI i oglądać CSS, JS i HTML Rozmiary Wzroku. Często deweloperzy zazwyczaj czują szczypta - gdy siedzi za potężną ośmiocznymi stacjami roboczymi z Internetem T3, nikt nie dba o szybkość. Zmiany te, które przychodzą jako opóźnienia lub urządzenia CPU.
Optymalizacja CSS wymaga podejścia wielowymiarowego. Podczas gdy kod napisany ręcznie można go schludynować przy użyciu różnych technik, przechodząc przez kod ramowy ręcznie jest nieefektywny. W takich przypadkach przy użyciu automatycznego minimisera daje lepsze wyniki.
Poniższe kroki zabiorą nas w podróż przez świat optymalizacji CSS. Nie każdy pojedynczy może być bezpośrednio stosowany do twojego projektu, ale pamiętaj o tym. Chcesz coś prostszego? Spróbuj A. Kreator strony internetowej .
Najszybszą klauzulą CSS to taki, który nigdy nie jest analizowany. Korzystając z klauzul w skrótach, takich jak deklaracja marży pokazana poniżej, radykalnie zmniejsza rozmiar plików CSS. Dużo dodatkowych skrótów formularzy można znaleźć przez Googling 'CSS Shorthand'.
p {margin-top: 1px;
margines prawy: 2px;
margines-dno: 3px;
Marginet-left: 4px; }
p {margines: 1px 2px 3px 4px; }
Eliminowanie niepotrzebnych części znacznika oczywiście powoduje, że ogromne zyski prędkości. Przeglądarka Chrome Google ma tę funkcję z pudełka. Po prostu przejdź do View & GT; Developer & GT; Narzędzia programisty i otwórz kartę źródeł w wersji ostatniej i otwórz menu polecenia. Następnie wybierz Pokaż zasięg i świętuj oczy na oknie analizy zasięgu, podświetlając nieużywany kod na bieżącej strony internetowej.
Nawigacja przez analizę linii linii niekoniecznie jest koniecznie wygodne. Audyt w sieci Chrome Web Performance zwraca podobne informacje - po prostu otwórz go z paska narzędzi, widok & gt; Developer & GT; Narzędzia programistyczne i GT; Audyty i uciekaj. Po zakończeniu pojawi się lista problematycznych elementów.
Należy mieć na uwadze, że automatyczna analiza CSS może zawsze prowadzić do błędów. Wykonaj dokładny test całej witryny po wymianie plików CSS za pomocą minifikowanych - nigdy nie wie, co spowodowało błędy optymalizatora. I porusza się do przodu, przyzwoity hosting może pomóc w prasie zagnieceń w swojej witrynie.
Ładowanie zewnętrznych arkuszy stylów kosztuje czas z powodu opóźnienia - każdy zapamiętaj "błysk nienastrydowanej treści"? Najbardziej krytyczne bitów kodu może zatem wejść do znacznika nagłówka. Jednak nie przesadzam. Należy mieć na uwadze, że kod musi być również czytany przez ludzi wykonujących zadania konserwacyjne.
HTML & GT;
& lt; Head & GT;
& lt; style & gt;
.blue {kolor: niebieski;}
& LT; / Style & GT;
& LT; / Head & GT;
& lt; body & gt;
& lt; div Class = "Blue" & GT;
Witaj świecie!
& lt; / div & gt;
@import dodaje strukturę do kodu CSS. Niestety, korzyści nie są bezpłatne: ponieważ import może gniazdować, analizowanie ich równolegle nie jest możliwe. Bardziej równoległy sposób korzysta z serii & lt; link & gt; Tagi, które przeglądarka może przynieść jednocześnie.
@import URL ("A.CSS");
@import URL ("B.CSS");
@import URL ("C.CSS");
V & LT; Link Rel = "Arkusz stylów" HREF = "A.CSS" & GT;
łącznik Rel = "Arkusz stylów" HREF = "B.CSS" & GT;
łącznik rel = "arkusz stylowy" href = "c.css" & gt;
Lata temu zestaw półprzezroczystych PNG w celu stworzenia przezroczystego wpływu na strony internetowe. Obecnie filtry CSS zapewniają alternatywę oszczędności na zasobach. Jako przykład, fragment towarzyszący temu krokowi zapewnia, że obraz dany pojawia się jako wersja w skali szarości.
img {
-Webkit-filtr: szarość (100%); / * stary
Safari * /
Filtr: Skala szarości (100%);
}
Wspólna mądrość uczy, że sześciocyfrowe deskryptory kolorów są najbardziej wydajnym sposobem ekspresowania kolorów. Nie tak nie jest - w niektórych przypadkach, skrócone opisy lub nazwy kolorów mogą być krótsze.
Cel {Background-Color: #FFFFFFF; }
Cel {Tło: #FFF; }
CSS obsługuje szeroką gamę urządzeń i formatów numerów. Są to wdzięczny cel na optymalizację - zarówno końcowe, jak i po zerach można usunąć, jak pokazuje się w fragmence poniżej. Ponadto pamiętaj, że zero zawsze jest zero, a dodanie wymiaru nie dodaje wartości do zawartych informacji.
Wypełnienie: 0.2em;
marża: 20.0em;
Avalue: 0px;
Wypełnienie: .2em;
Marża: 20em;
Avalue: 0;
Ta optymalizacja jest nieco krytyczna, ponieważ wpływa na zmiany kodu. Specyfikacja CSS umożliwia pominięcie ostatniego średnika w grupie nieruchomości. Ponieważ oszczędności osiągnięte przez tę metodę optymalizacji są minimalne, wspominamy o tym głównie dla tych, którzy pracują nad zautomatyzowanym optymalizarem.
p {
. . .
Czcionka: 1.33
}
Ładowanie wielu małych sprite jest nieefektywne z powodu narzutów protokołów. CSS Sprites łączą serię małych zdjęć w jeden duży plik PNG, który jest następnie rozrywany przez reguły CSS. Programy takie jak. Tekstura Znacznie upraszcz proces tworzenia.
. Idownload {
Szerokość: 80px;
Wysokość: 31px;
Pozycja tła: -160px -160px
}
.download: Hover {
Szerokość: 80px;
Wysokość: 32px;
Tło pozycja: -80px -160px
}
Jeden schludny sposób zwiększenia wydajności wykorzystuje specjalność standardu CSS. Zakłada się, że wartości liczbowe bez jednostki są piksele - usuwanie PX zapisuje dwa bajty dla każdego numeru.
H2 {Wypełnienie: 0px; margines: 0px;}
H2 {Wypełnienie: 0; Marża: 0}
Analiza wykazała pewne tagi, aby były droższe niż inne. Listę towarzyszącej temu etapowi uważa się za szczególnie głodne wyniki - unikaj ich, gdy ma to możliwość.
Radiusa
box-cień
przekształcać
filtr
: nth-dziecko
Pozycja: Naprawiono;
itd.
Whitespace - Pomyśl o zakładkach, zwroty karetki i spacje - sprawia, że kod jest łatwiejszy do czytania, ale służy niewiele celów z punktu widzenia parsera. Wyeliminuj je przed wysyłką. Jeszcze lepszy sposób polega na definiowaniu tej pracy do skryptu powłoki lub podobnego urządzenia.
Komentarze nie służą również do kompilatora. Utwórz niestandardowy parser, aby usunąć je przed dostawą. Nie tylko to oszczędza przepustowość, ale zapewnia również, że napastnicy i klonery mają trudniejsze czas zrozumienia myślenia za kodem pod ręką.
Zespół doświadczenia użytkownika Yahoo stworzył aplikację, która obsługuje wiele zadań kompresji. To statki jako plik JAR, dostępny tutaj i może być uruchomiony z wyborem JVM.
Java -jar yuicompressor-x.y.z.jar
Użycie: java -jar yuicompressor-x.y.z.jar
[Opcje] [Plik wejściowy]
Opcje globalne.
-H --help Wyświetla to
Informacja
--type & lt; Js | CSS & GT; Określa stronę
Rodzaj pliku wejściowego
Wolisz zintegrować produkt do węzła.js, odwiedź npmjs.com/package/yuicompressor. . Zadawane repozytorium zawiera zestaw plików opakowań i API JavaScript.
Var Compressor = wymagać ("Yuicompressor");
kompresor.com ("/ ścieżka / do /
Plik lub ciąg JS ', {
// Opcje sprężarki:
Charset: "UTF8",
Typ: "JS",
Podczas gdy wydajność selektor CSS nie jest prawie tak krytyczna, jakby były jakieś lata temu (patrz zasób), ramy, takie jak Sass czasami emitują bardzo złożony kod. Spójrz na pliki wyjściowe od czasu do czasu i pomyśl o sposobach optymalizacji wyników. Dostałem wyniki, aby podzielić się z zespołem? Zachowaj pliki w udostępnianiu magazyn w chmurze .
Stare powiedzenie twierdzi, że najszybszy plik jest taki, który nigdy nie zostanie wysłany przez przewody. Sprawienie, aby prośby pamięci podręcznej przeglądarki osiąga to skutecznie. Niestety, konfiguracja nagłówków buforujących musi odbywać się na serwerze. Dobrze korzystać z dwóch narzędzi pokazanych w ekranach - zapewniają szybki sposób na analizę wyników zmian.
Projektanci często nie lubią buforowania ze względu na strach przed problemami z nadchodzącymi zmianami. Przystojny sposób wokół problemu obejmuje włączenie znaczników z nazwą pliku. Niestety, schemat przedstawiony w kodzie towarzyszy temu krok nie działa wszędzie, ponieważ niektóre pełnomocnicy odmawiają plików pamięci podręcznej z "dynamiczne" ścieżki.
łącznik Rel = "Arkusz stylów" href = "Style.css? V = 1.2.3" & GT;
Optymalizacja CSS jest tylko częścią gry. Jeśli serwer nie używa kompresji HTTP / 2 i GZIP, dużo czasu jest tracony podczas transmisji danych. Na szczęście mocowanie tych dwóch problemów jest zwykle proste. Nasz przykład pokazuje kilka poprawek do powszechnie używanego serwera Apache. Jeśli chcesz znaleźć się w innym systemie, po prostu skonsultuj się z dokumentacją serwera.
Pico /etc/httpd/conf/httpd.conf
Addoutputfilterbytype deflacja tekst / html
Addoutputfilterbytype deflacja tekst / css
Ten artykuł został pierwotnie opublikowany w wydaniu 282 kreatywnego magazynu projektowania stron internetowych Projektant stron internetowych . Kup problem 282 tutaj lub Subskrybuj tutaj projektant stron internetowych .
Powiązane artykuły:
Uczenie się, jak narysować ptak może być genialną rozrywką. Jeśli szukasz umiejętności rysowania lub myśleć o podjęciu nowego hobby, ten eksper..
Strona 1 z 4: Blokowanie folii. Blokowanie folii. ..
Selekcje są jednym z najważniejszych zadań, na których nauczysz się opanować Photoshop CC. . Dobry wybór udzieli realizmu obrazu, nie wspominając o czystości. Ale z ta..
Chaos Group Labs Dyrektor Chris Nichols będzie robią rozmowę o kluczu Wierzchołek , n..
Podczas rysowania portretów zwierząt domowych nie musisz tylko wiedzieć Jak rysować zwierzęta : Zadaniem jest..
Rzeźbianie naprawdę szczegółowego stworzenia 3D może zająć dni - ale nadal jest niesamowite, jak daleko możesz uzyskać za godzinę. Ten model Nubian Ibex został wyrzeźbiony przez ..
Digital Pracuje uwalnia, że masz tyle błędów, jak chcesz, w obszarze roboczym, w którym jest zabrany element ryzyka. W..
Z Złamana przestrzeń Bycie tym, czym jest - darmowa gra bojowa zespołu - statki i ich umiejętności są gwiazd..