Optimisation WEB: Partie 1 – Page Speed (vitesse de la page) pour les images

Quelles sont les améliorations et optimisations à apporter sur votre application JEE pour maximiser les performances concernant le chargement des images.
Pierre LISERONMis à jour le 2 Juil 2013

Optimisation WEB: Page Speed pour les images

 

Afin doptimiser votre site web (ou application web), il existe un certain nombre dactions simple à effectuer. Dans cet article nous allons passer en revue le moyen doptimiser la vitesse de chargement de votre page web. Pour ce faire, nous allons utiliser un outil mis à disposition par GOOGLE (pagespeed) disponible à ladresse suivante: https://developers.google.com/speed/pagespeed/

Cet outil donne un certain nombre dindicateur simple avec des conseils pour les réaliser. Nous allons donc les parcourir et voir comment les appliquer sur votre application JEEJava Entreprise Edition.

Optimisation des images

Taille des images

Les images posent de gros problèmes de performance dans une application web. En effet, pour avoir un site agréable, les graphistes fournissent souvent de belles et grandes images dune taille conséquente. Pour résoudre ce problème, un grand nombre doutils permettent de compresser les images et de choisir le bon type pour limage (PNG ou GIF). Cette étape est particulièrement importante pour la vitesse de votre page, puisquelle joue directement sur la taille du transfert réseau. Noubliez pas que tout le monde na pas la fibre optique. Dans loutil mis à disposition par google, cet item est situer dans « Réduire la charge utile -> Optimiser les images »

Servir les images sur un serveur de contenus statiques

Une optimisation importante est de servir les images depuis un autre sous domaine pour ainsi éviter davoir un cookie. Cette action peut paraitre futile mais elle permet daugmenter sensiblement les performances de votre application. De plus ceci permettra en plus de pouvoir facilement configurer le cache par le serveur dapache.

Le problème des chaînes de requête des ressources statiques (images)

Le balise html générée ressemblera à :

Ce qui est mauvais et pour le référencement et pour les performances puisquun grand nombre de navigateur ne cache pas les ressources avec des ? et des variables.

Pour résoudre le problème, il convient de ne pas utiliser ce mécanisme et dexternaliser toutes les images sur un sous-domaine comme expliqué dans le point précédent. Ce problème se situe dans « Autres -> Supprimer les chaînes de requête des ressources statiques » dans loutil de google.

Spécifier la taille des images

Une autre optimisation intéressante est de spécifier la taille des images dans la balise img. Cette astuce permet de limiter les appels aux commandes reflow() et repaint() et donc doptimiser le temps de chargement de la page. Cette optimisation se trouve dans loutil de google dans la partie « Réduire les temps de chargement des pages-> Spécifier les dimensions des images »

La mise en cache

La mise en cache peut seffectuer sur le navigateur et/ou sur votre apache.

Mise en cache navigateur

La mise en cache sur le navigateur permet de limiter les aller-retours avec le serveur en spécifiant au navigateur que la ressource na pas besoin dêtre recharger.

Pour ce faire, il est nécessaire de spécifier les headers HTTP soit avec apache comme ceci:

ExpiresActive On

ExpiresDefault « access plus 1 month »

Header unset ETag

FileETag None 

soit avec un filter JAVA en rajouter un header:

httpResponse.setHeader(« Cache-Control », « max-age=1204800, public »);

Mise en cache avec memcache

Un autre cache peut être réaliser avec le module mem_cache dapache.

 

Nous verrons dans un autre article comment continuer doptimiser les applications web JEE côté serveur.