Het samenvoegen van meerdere javascript files, en het minifyen van dezelfde
javascript is een optimalisatie die flink effect kan hebben op de performance
van je website; en een standaardadvies van optimalisatietools. Vandaar
hier de techniek die wij gebruiken voor onze nieuwe mobiele website om
javascript samen te voegen, te minifyen met YUI compressor, en automatisch
te versionen.
Welke javascript is nodig? Om op een willekeurige pagina aan te geven welke javascript benodigd is,
kunnen we inhaken op het 'Page_Init()' event dat nog steeds bestaat
in ASP.NET MVC. Dit draait voordat de view zal worden gerenderd. De syntax
hiervoor is:
Wanneer je bovenstaande code in je masterpage zet, kan je tevens per view
een zelfde blokje toevoegen. Deze scripts worden dan ná de scripts
in je masterpage toegevoegd (volgorde is nogal eens belangrijk bij javascript
bestanden :-)).
Renderen Op een willekeurig punt in je pagina (of masterpage) kan je kiezen om
de scripts te renderen, dankzij een toevoeging aan de HtmlHelper.
Dit print het volgende stuk code:
De code '1234' achteraan is de samengestelde hash van de losse
bestanden samen. Als er dus een bestand wijzigt, zal ook de hash wijzigen
en zal de browser de file opnieuw binnen halen.
ScriptHelper code Om op te slaan welke files moeten worden gerendered in de 'keys'
parameter, kunnen we gebruik maken van de 'HttpContext.Current.Items',
die gebonden is aan het huidige request. Hieromheen kunnen we de helper
methodes schrijven die hierboven staan.
ResourcesController In je pagina wordt nu één request gedaan, maar je krijgt nog
geen antwoord van de server. Voeg eerst de YUI compressor voor .NET toe aan je project. En maak
vervolgens de 'ResourcesController' aan:
Et voila De javascript wordt voortaan in 1 request opgehaald, en geminified naar
de client gestuurd. Scheelt weer wat onnodig snelheidsverlies zonder verlies
in functionaliteit.
There are 16 comments on this article, read them on
Coding Glamour.