7. Jak najmniej żądań – obrazy CSS sprites
<span style=”
width: 32px; height: 32px;
background-image: url('sprites.gif');
background-position: -260px -90px;quot;>
</span>
Rozmiar jednego obrazka jest mniejszy niż kliku mniejszych
8. Jak najmniej żądań – osadzone obrazy
<IMG ALT=”star”
SRC=quot;data:image/gif;base64,R0lGODlhDAAMALMLA
PN8ffBiYvWWlvrKy/FvcPewsO9VVfajo+w6O/zl5est
Lv/8/AAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAMAAw
AAAQzcElZyryTEHyTUgknHd9xGV+qKsYirKkwDYiKDB
iatt2H1KBLQRFIJAIKywRgmhwAIlEEADs=quot;>
IE dopiero od IE 8
Firefox akceptuje do 100 KB
11. Pamięć podręczna
Expires: Tue, 09 Mar 2010 19:15:02 GMT
Cache-Control: max-age=31104000
Nazwy plików przy wykorzystaniu cache
global.css?123608120 reklama.js?20090310 123603675_image.gif
Konfiguracja nagłówka ETag
ETag: quot;c8897e-aee-4165acf0quot;
Last-Modified: Thu, 07 Oct 2004 20:54:08 GMT
If-None-Match: quot;c8897e-aee-4165acf0quot;
If-Modified-Since: Thu, 07 Oct 2004 20:54:08 GMT
FileETag INode MTime Size
FileETag none
12. Optymalizacja skryptów i CSS
Zewnętrzne skrypty CSS
CSS jak najwyżej (sekcja HEAD)
LINK zamiast @import
unikać wyrażeń w CSS
skrypty jak najniżej (przed </body>)
minimalizacja skryptów i CSS
unikać duplikowania skryptów
body {
width: expression(document.body.clientWidth < 600 ? “600px”:“auto” );
width-min: 600px;
}
13. Optymalizacja obrazów
optymalna liczba kolorów
# identify -verbose image.gif
PNG zamiast GIF
# convert image.gif image.png
optymalizacja PNG
# pngcrush image.png -rem alla -reduce -brute result.png
optymalizacja JPG
# jpegtran -copy none -optimize -perfect src.jpg dest.jpg
nie skalować obrazów w html
<img width=quot;100quot; height=quot;100quot; src=quot;image.jpgquot; alt=quot;quot; />
obiekty poniżej 25K
14. Optymalizacja zapytań
Rozpraszanie zapytań na kilka domen
(yimg.com, ytimg.com, images-amazon.com)
redukcja zapytań DNS
(przeciętnie 20-120 ms na zapytanie, blokada równoległego pobierania obiektów)
redukcja przekierowań
buforowanie zapytań AJAX
GET zamiast POST
unikanie błędu 404
kompresja gzip
15. Kompresja odpowiedzi (GZIP)
Zmniejsza czas pobierania treści
Wspierane przez ponad 90% przeglądarek
Niezalecane dla obrazków i PDF
Kompresja czy obsługa proxy?
Buforowanie proxy:
Żądanie HTTP
Accept-Encoding: gzip, deflate
Vary: Accept-Encoding
Vary: Accept-Encoding, User-Agent
Odpowiedź HTTP Vary: *
Content-Encoding: gzip Cache-Control: private
18. YSlow - wyniki
TOP 10 Polska TOP 10 Global
Witryna internetowa Wynik
Witryna internetowa Wynik
C (71)
blogger.com
allegro.pl B (81)
C (79)
facebook.com
fotka.pl F (57)
A (96)
google.com
google.pl A (95)
A (97)
live.com
interia.pl F (54)
F (49)
msn.com
nasza-klasa.pl F (43)
D (64)
myspace.com
onet.pl F (44)
orkut.com A (98)
wikipedia.org D (68)
D (68)
wikipedia.org
wp.pl F (48) A (96)
yahoo.com
youtube.com D (67) D (67)
youtube.com
adobe.com F (29)
sklep.etpro.pl B (88)
gratka.pl F (41)