Published 
August 27, 2010
Reading time 
7 - 12 minutes

Optimering av laddningstiden för broken8.se

Laddningstiden för broken8.se var inte dåligt ens innan jag optimerade den. Det betyder dock inte att sidan kan förtjäna lite optimering, eller att det kan vara roligt att försöka trimma laddningsiden.

Kombinera och minimera javascript och css filer.

Det första steget i optimeringen var att kombinera alla javascript filer till en fil samt att se till att den hamnar i slutet av sidan istället för i . Yahoo! skriver i sin artikel Best Practices for Speeding Up Your Web Site att en viktig del av optimeringen är att kombinera filer. Att samtidigt minimera filerna sparar ännu mer tid.

Men att ha all sin javascript kod i samma fil gör det jobbigare att arbeta och om man dessutom vill ha koden minimerad blir det ohållbart. Därför har ett antal olika lösningar för att kombinera och minifiera filer "on the fly" dykt upp. Min favoritlösning är minify. Minify kan kombinera javascript och css filer samt minimera javascript, css och html. För att göra det ännu enklare för mig skrev jag ihop ett litet plugin för Habari som tar bort alla javascript och css filer som lagts till kör dem igenom minify och sedan sparar ut dem som minifierade filer.

Minification.

Minification kombinerar och minifierar javascript, css och html. Genom att samtidigt se till att javascript laddas in sist på sidan upplevs laddningen ännu snabbare. En sida som är bra konstruerad behöver inte javascript för att fungera och det är därför helt ok att ladda in dessa sist.

Imagesprites och jpeg kvalité

Yahoo! föreslår även att man ska optimera sin bilder. Det finns två sätt att förbättra laddningstiden, kombinera flera bilder i en större bild samt att ta ner kvalitén på bilderna och ta bort onödig information i dem. Då broken8.se enbart använder två bilder och dessa av väldigt olika typ kändes det inte vettigt att kombinera dessa. Istället riktade jag in mig på att ta ner kvalitén på bakgrundsbilden och det rejält. Den ursprungliga bilden var en jpeg bild som vägde 569 KB och det var på tok för mycket. Genom att försämra kvalitén från 100 till 40 gick filstorleken ner till 49 KB. Elva gånger mindre än den ursprungliga filen! Ok, att försämra kvalitén på bakgrunden så mycket resulterade i en bild med ganska tydliga jpeg artifakter, det är mycket möjligt att jag i framtiden förbättrar kvalitén något.

Tänk inte enbart på den faktiskt laddningstiden.

Även om den faktiskt laddningstiden kan snabbas upp när man kombinerar filer betyder det inte alltid att sidan upplevs snabbare. Att till exempel använda base64 encoding för att inkludera bilder i cssfilen resulterar i en större css fil. Det här innebär att man sparar in en eller kanske ett par förfrågningar men får istället en uppsjö negativa konsekvenser. Data URIs make CSS sprites obsolete tar upp fördelarna med base64 lösningen men ett antal nackdelar diskuteras även i kommentarerna.

Nackdelar med base64 bilder - som jag ser det.

Resultatet

Resultat av optimering

Comments on Optimering av laddningstiden för broken8.se