Newsletter

Grupa MagazynyInternetowe

Online: 974

Wyszukiwarka

CSS, Optymalizacja witryny

Jak przyśpieszyć działanie strony

Jak przyśpieszyć działanie strony Wolno działająca strona odstraszy użytkowników. Zamiast przenosić ją na szybszy i droższy serwer warto zoptymalizować działanie witryny.

Marcin Kosedowski

Czas po jakim internauta zobaczy stronę ma duży wpływ na to czy na niej pozostanie. Aby przyśpieszyć ładowanie witryny możemy wykupić szybszy serwer, zoptymalizować jego działanie, zmniejszyć ilość pobieranych danych i wykorzystać zalety nowoczesnych przeglądarek.

Szybszy hosting

Najprostsza, ale zwykle najdroższa metoda to zmiana serwera na szybszy. Przy wyborze hostingu warto zwrócić uwagę na szybkość wysyłania danych, a nie tylko na limit ich ilości. Serwer powinien ponadto znajdować się blisko potencjalnych użytkowników. Odbije się to na czasie wysyłania danych.

Szybszy skrypt

Przyśpieszyć można również działanie serwera. Znów najprostszy jest zakup szybszego sprzętu, ale jeśli aplikacja jest źle napisana, to nic nie pomoże. Ilość i złożoność zapytań do bazy należy dobrać tak, aby baza wykonywała jak najwięcej obliczeń, a skrypt nie musiał ich przetwarzać. Jak najwięcej zapytań powinno być cache'owanych.

Testowanie połączenia ułatwi jego optymalizację. Testowanie połączenia ułatwi jego optymalizację.

Niestety na część serwerów nie mamy wpływu – reklamy, statystyki czy widgety innych serwisów potrafią spowolnić nawet najlepszą stronę. Warto zastanowić się czy koniecznie potrzebne są spowalniające skrypty i czy nie da się załadować ich po załadowaniu szkieletu (jak np. Google Analytics). Jeśli nie, to powinny znaleźć na samym końcu pobieranych elementów. Oczywiście tylko jeśli JavaScript nie wpływa na działanie strony.

Szybszy transfer

Poza szybkością serwera ważna jest również ilość przesyłanych danych. Najwięcej ważą obiekty multimedialne, więc warto przenieść je na szybszy serwer. Pozostałe elementy należy skompresować. Dotyczy to zwłaszcza grafik i skryptów. Należy przy tym pamiętać, że pliki skompresowane JPG-iem czy zapisane w formacie GIF mogą znacznie stracić na jakości.

A jak skompresować skrypty? Zamiast nazw typu toJestMojaZmienna warto stosować jednoliterowe, należy usunąć zbędne białe znaki, nie powielać fragmentów kodu i wyciąć komentarze. Skrypt będzie nieczytelny, ale jego rozmiar zmniejszy się o kilkadziesiąt procent! Jeśli serwer na to pozwala, należy włączyć kompresję gzip.

Szybsza komunikacja

Komunikacja z serwerem to nie tylko pobieranie danych, ale także nawiązania połączenia. Czas ten jest mniej więcej stały i opóźnia pobranie każdego pliku o przeciętnie 0,1 – 0,2s (zależy to również od serwera). To mało, ale jeśli mamy do pobrania 30 obrazków, to opóźnienie wyniesie 5 sekund. Z tego względu należy łączyć pliki graficzne tak jak w dołączonym przykładzie.

Połączenie małych plików graficznych w jeden to najprostszy sposób na przyśpieszenie. Połączenie małych plików graficznych w jeden to najprostszy sposób na przyśpieszenie.

Wykorzystując CSS można „wyciąć” interesujący nas fragment grafiki. W przykładowym kodzie

[+]
 
 
Pobierz
1. #zielony{
2.         background: url(przyklad.gif) -80px -30px;
3.         width:160px;
4.         height:50px;
5. }

Używamy tylko fragmentu grafiki przykład.gif przesuniętego o 80 pikseli w prawo od lewej krawędzi i o 30 pikseli od góry. Widoczny wycinek ma 160 pikseli szerokości i 50 wysokości, a pozostała część grafiki może być wykorzystana w innych miejscach. Można w ten sposób połączyć wszystkie pliki w danym formacie.

Szybsza przeglądarka

Warto również wykorzystać zalety nowoczesnych przeglądarek i część danych pobrać asynchronicznie po załadowaniu strony, przy grafikach określać ich wysokość i szerokość, żeby przeglądarka przy renderowaniu wiedziała jak ułożyć treść czy wykorzystać przyśpieszenie płynące z używania Chrome'a.

Wykorzystanie tych prostych sztuczek przyśpieszy działanie strony, a nie wymaga specjalistycznej wiedzy i wiele zachodu. Użytkownicy z pewnością będą zadowoleni.

Przydatne linki

  • http://tools.pingdom.com/
  • http://test.watchscript.pl/
  • http://www.websiteoptimization.com/services/analyze/
8 lutego 2010
Skomentuj
ten artykuł

Komentarzy: 11

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum Wednesday, 17.02.2010 21:24Janosik

Dawno nie czytałem takiego bezużytecznego artykułu. Kilka ogólników i tyle. Pisanie nie jest mocną stroną autora tego tekstu - przykro mi.

Przejdż do tego postu na forum Friday, 12.02.2010 12:29Jakub Staszak

A może przede wszystkim wspomnieć o stworzeniu jednego pliku CSS dla całej strony, zamiast wklejaniu kilogramów kodu? Optymalizacji samego kodu, optymalizacji obrazków? O stosowaniu algorytmów w skryptach, zamiast trzepaniu ich "na chłopski rozum" i dekompozycji bardziej złożonych funkcji logicznych?

Przejdż do tego postu na forum Tuesday, 9.02.2010 21:58http://1pln.org

CSS należy załączać na początku pliku (wczytuje się jednocześnie z obrazkami na stronie i pomaga w jej renderowaniu), a JavaScript najlepiej na samym końcu.

Przejdż do tego postu na forum Tuesday, 9.02.2010 21:481pln.org

Na początku pliku wystarczy wrzucić kod:
if (!ini_get('zlib.output_compression')) { if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
{ ini_set('zlib.output_compression_level', 3);
ob_start('ob_gzhandler');
} }

Przejdż do tego postu na forum Tuesday, 9.02.2010 17:34krm

mało tego, bardzo mało, szkoda, że nie wydajecie już na papierze tylko schowaliście się w dziupli internetowej, poziom niestety też na tym ucierpiał

Przejdż do tego postu na forum Tuesday, 9.02.2010 16:23R

Porażka. Może jakieś konkrety?
Jak ładować te skrypty po załadowaniu szkieletu?

Przejdż do tego postu na forum Tuesday, 9.02.2010 10:33Wii8

Samo używanie Chroma przyspiesza przeglądanie wink.gif

Przejdż do tego postu na forum Monday, 8.02.2010 21:14mmmm

Niby prawda, ale to wszystko takie ogólne.
"Ilość i złożoność zapytań do bazy należy dobrać tak, aby baza wykonywała jak najwięcej obliczeń, a skrypt nie musiał ich przetwarzać". Prawda, ale gdzie porady jak to zrobić?

"Warto zastanowić się czy koniecznie potrzebne są spowalniające skrypty i czy nie da się załadować ich po załadowaniu szkieletu". Też prawda, ale czemu nie ma tych trzech linijek JS które za to odpowiedzą?

"Jeśli serwer na to pozwala, należy włączyć kompresję gzip". Jak wyżej - jak to zrobić?

Dlaczego nie można dopisać tych paru linijek rtylko kazać szukać samemu?

Przejdż do tego postu na forum Monday, 8.02.2010 18:39berc

to jest zart ?, spodziewalem sie czegos co mozna wykozyc w praktyce, a nie kup host, kup serwer, napisz szybszy skrypt

dno, calkowite dno

Przejdż do tego postu na forum Monday, 8.02.2010 13:58.

ustawianie cache plikow przegladarce przez mod_expires?
kompresja gzip?
scalanie css i js do jednych plikow ?

Przejdż do tego postu na forum Monday, 8.02.2010 13:33Pluto

Jak wykorzystac przyspieszenia Chrome'a?

Zobacz wszystkie komentarze »

Autor

Marcin Kosedowski

Marcin Kosedowski - programista i mimo wykształcenia typowo technicznego autor artykułów o tematyce dotyczącej Internetu i bezpieczeństwa w sieci. Hobbystycznie prowadzi bloga, na którym porusza sprawy związane z programowaniem i Internetem.

Adres bloga like-a-geek.jogger.pl

Artykuły tego autora:

Załączniki

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.