webboptimering 25 min

27
Webbprestanda? Tips! Serversidan Klientsidan Båda sidor Verktyg Fredrik Wendt jsolutions.se

Upload: fredrik-wendt

Post on 18-Dec-2014

450 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Webboptimering 25 min

✔ Webbprestanda?✔ Tips!

✔ Serversidan✔ Klientsidan✔ Båda sidor

✔ Verktyg

Fredrik Wendtjsolutions.se

Page 2: Webboptimering 25 min
Page 3: Webboptimering 25 min

Klient

Server JSP ASPJSP SQL Filer

JSP CSSHTMLJava-Script

JSON/XML

"Komponent"

Page 4: Webboptimering 25 min

Hur funkar webben?

HTML

CSS● DOM ready

script

img

iframe● onLoad

Page 5: Webboptimering 25 min

Dagens "take aways"

● Effektivare överföring

● Få HTTP-anrop

● Verktyg

Page 6: Webboptimering 25 min

Serversidan

● Effektivare överföring● gzip

● Få HTTP-anrop● Utnyttja browserns

cache– Expires– Last-Modified

Page 7: Webboptimering 25 min

Komprimera med gzip

● 50 - 75 % färre bytes att skicka över linan

● bittar = pengar● bittar = CPU-tid

» Accept-Encoding

« Content-Encoding

Page 8: Webboptimering 25 min

Använd browserns cache!

● Last-Modified● Expires *

● E-Tag - stäng av!● Content-Cache

STOR besparings-potential!

Page 9: Webboptimering 25 min

Klientsidan

● Effektivare överföring● Parallell nedladdning

● Få HTTP-anrop● Kombinera JS, CSS

och bilder

Page 10: Webboptimering 25 min

LABjs.com - Kyle Simpson

● Laddar JS parallellt● Exekverar enligt

utpekad ordning● Blockerar inte andra

resurser (CSS & bilder)● Varning: FUBC

Page 11: Webboptimering 25 min

FUBC

...<head><script>if (google.j.b) document.body.style.visibility='hidden';</script></head><body>...

Page 12: Webboptimering 25 min

Få HTTP-anrop

● Kombinera CSS-filer● Kombinera JS-filer● CSS sprites

SpriteMe● Komprimera bilder

Smush.it

Page 13: Webboptimering 25 min

Packa bilder

● smush.it● EFWS

Page 14: Webboptimering 25 min

Fyll cachen!

● Dela CSS, JS och bild-sprites i två delar: start och övrigt

● Optimera startsidan till att bara ladda start-delarna

● Efter onLoad på startsida, ladda övrigt-delarna

Page 15: Webboptimering 25 min

Kommentera bort JavaScript

● Genom att kommentera ut all kod evalueras den snabbt av browsern.

● Plocka bort kommentarerna, kör eval() och voila!

● Ladda i IFRAME t ex

<script language...>

/*

var mylib = function() {

this.nice = function() ...

}();

*/

</script>

Page 16: Webboptimering 25 min

Applikationen

● HTML-optimering● DNS-uppslagningar● Parallella HTTP-

anrop● Få HTTP-anrop● Flush early

Page 17: Webboptimering 25 min

Parallella HTTP-anrop

● ScriptLABjs

Page 18: Webboptimering 25 min

Parallella HTTP-anrop

● DNS-uppslag tar tid

● DNS-info ligger inte i cachen

● tumregel: 2 till 4 domäner

Page 19: Webboptimering 25 min

Börja mäta

● Cache (304) och bytes/besök/sida

● Renderingstid (DOMReady, onLoad)

● Affärs-/nyckelvärden såsom antal besök, avslutade köp, genomsnittlig besökstid,låtar lyssnade, bilder visade

Page 20: Webboptimering 25 min

Verktyg

Page 21: Webboptimering 25 min

Firebug och Firefox!

Page 22: Webboptimering 25 min

YSlow & Google Page Speed

● 14 regler från HPWS● utskriftsvänlig rapport● smushit● Minification

Page 23: Webboptimering 25 min

Douglas Crockford & Steve Souders

Page 24: Webboptimering 25 min

Sammanfattning

● Verktyg● Firefox + Firebug● YSlow och

Google Page Speed● SpriteMe, Smush.it

● Börja mäta det som känns meningsfullt

– bytes/besök – YSlow-betyg– DOMReady, onLoad

Page 25: Webboptimering 25 min

Sammanfattning

● gzip● slå ihop CSS & JS● css sprites● två domäner● LABjs (blockerande JS)

● använd cachenLast-Modified, Expires

Page 26: Webboptimering 25 min

Referenceshttp://getfirefox.com/http://getfirebug.com/

http://developer.yahoo.com/yslow/http://code.google.com/speed/page-speed/

https://addons.mozilla.org/en-US/firefox/addon/60

Photos from http://flickr.com/naoh/ (man in front of laptop)

http://flickr.com/ipom/ (Souders and Crockford)

This documenthttp://creativecommons.org/licenses/by-sa/3.0/

All other graphics comes from gnome-icon-theme (GPL),/usr/share/icons/gnome/scalable/*/*.svg converted to png

Ulisse Perusin <[email protected]>, Riccardo Buzzotta <[email protected]>, Josef Vybíral <[email protected]>, Hylke Bons <[email protected]>, Ricardo González

<[email protected]>, Lapo Calamandrei <[email protected]>, Rodney Dawes <[email protected]>, Luca Ferretti <[email protected]>, Tuomas Kuosmanen <[email protected]>,

Andreas Nilsson <[email protected]>, Jakub Steiner <[email protected]>

Page 27: Webboptimering 25 min

Fredrik Wendtjsolutions.se