Le Post Infeeny

Les articles des consultants et experts Infeeny

Optimize your website using asp.net and iis8

Message de Pierre Yves Hemery

Quand amazon est 100 ms plus lent, ils perdent presque 1M$ par jour !
Quand google est 50ms plus lent, ils perdent 20% de traffic !

On peut optimiser un site sur plusieurs couches, mais la session traitera que de couche asp.net/iis.
(premiere, la demo n’est pas sous w8 et VS11, mais du Vs210 et firefox…)

premier conseil = suivre les suggestions de page speed et yslow optimiser la taille du request tree (l’arborescence d’enchainement des requetes)

 # Bundle js and css
asp.net integre un mecanisme automatique pour combiner et minifier les css et js au runtime.
on le configure dans le global.asax et on garde dans la page un seul header css avec comme source « Style/css » (idem pour le javascript « Scripts/js »)

On peut aussi ajouter des regles pour gerer l’ordre, prendre des fichiers ailleurs que dans les repertoires par defaut…
Le systeme est extensible via une interface IBundleTransform ou par heritage d’un bundle existant.
(ex. on remplace un lien image dans la css par l’image encodee en base64 dans un tag url(data:image) ).

 # compression gzip
On configure la compression gzip dans le web.config <urlcompression />

 # browser caching
On configure les caches headers http dans le web.config <staticcontent><clientcache/>

 # coffee script (http://jashkenas.github.com/coffee-script/)
on peut aussi etendre le mecanisme de bundle a d’autres types de fichiers (ex avec les coffee scripts)

 # optimiser les images
le speaker a ecrit un addin VS pour ajouter un menu « optimize images » sur un dossier en utilisant smushit
http://visualstudiogallery.msdn.microsoft.com/a56eddd3-d79b-48ac-8c8f-2db06ade77c3

 # optimiser le html
on override la methode render() pour parser le html et supprimer les espaces avec des regex.
on peut aussi overrider le onload() pour ajouter la date d’expiration de la page pour qu’elle reste en cache.

Note : il y a un helper pour ajouter hashcode (base sur le contenu et pas une date) sur le lien du fichier de sortie du bundle pour etre sur que le fichier ne reste pas en cache si on fait des modifications

Le mecanisme est dispo dans un paquet nuget http://nuget.org/List/Packages/Microsoft.Web.Optimization

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :