Archive pour juin 2009

Even Faster : 1 – ajax

Lundi 29 juin 2009

Je vous avais dit que je ferai un retour sur le dernier livre de Steve Souders, « Even Faster Web Sites» . On commence par un chapitre qui n’est pas rédigé par Steve lui même, mais par Douglas Crockford, « Ajax Performance» . De l’Ajax par Douglas Crockford, ça donne envie.

En fait Douglas y parle plutôt de compromis entre la performance et le reste, ainsi que de l’importance des mesures avant de savoir quoi optimiser. On ne parle pas vraiment d’Ajax. (Lire la suite…)

Petit exemple de mise en pratique

Vendredi 26 juin 2009

Voici un petit exemple de comment mettre en place les bonnes pratiques de cache et de concaténation des fichiers javascripts. L’article date de 2006 mais n’a pas pris une ride.

On y retrouve une réflexion sur comment regrouper les fichiers javascripts entre eux et comment les compresser. La note sur mod_gzip est toutefois assez contestable. Il est désormais sans risque d’activer mod_gzip ou mod_deflate, et ceux qui veulent absolument éviter tout risques peuvent trouver facilement sur internet des listes d’exclusions pour cibler les navigateurs défectueux.

La politique de cache est intéressante à étudier. Ils ont évité les paramètres en ?xxx et ont choisit de versionner le nom de fichier directement. Pour éviter d’avoir à créer un fichier par version, c’est à mod_rewrite qu’il revient de faire la liaison entre l’url et le fichier à jour. Les adresses main.v27.css et main.v256.css mènent toutes vers le même fichier main.css, toujours à jour.

Au final ils passent encore par un script PHP pour délivrer leurs fichiers javascript et css au lieu d’utiliser mod_expires, mais vous avez une expérience concrête, et reproductible en une journée pour améliorer vos performances.

Point trop n’en faut

Mercredi 24 juin 2009

En ce moment se tiennent les conférences Velocity en Californie. C’est une période où les experts parlent entre eux et où les bonnes remarques et bons sujets à propos des performances web sont publiés plusieurs fois par jour.

Suite à plusieurs de ces publications à propos des sprites CSS, il est temps de faire ici un petit complément sur le sujet. (Lire la suite…)

Le mythe des 24Mb/s

Lundi 22 juin 2009

Il semble qu’il faille parler un peu de bande passante. Nos meilleurs fournisseurs d’accès Internet promettent une bande passante de 24Mb/s. Monsieur tout le monde a l’impression de profiter d’une bande passante extraordinaire. L’internaute averti sait lui que ce n’est pas toujours le cas mais il va jusqu’à choisir son appartement en fonction de la proximité du DSLAM (plus on est proche de cette sorte de central téléphonique, meilleure est la connexion). Au final les deux restent dans l’illusion. Malheureusement la réalité est toute autre. (Lire la suite…)

Optimisation JPEG (encore)

Vendredi 19 juin 2009

je vous ai parlé plus d’une fois de recompression des images PNG. Mais … et les jpeg ?

Les jpeg ont aussi des métadonnées importantes et des informations inutiles dans un contexte web. Vous y trouverez plusieurs version de l’image à différentes résolutions pour gérer des miniatures, ou même des pistes audio. Stoyan Stefanov a trouvé un gain moyen de 12 % avec des transformations sans pertes sur l’image elle-même, loin d’être négligeable.

C’est Jpegtran dont j’avais parlé la dernière fois, l’outil utilisé par smushit. En plus de retirer les blocs de méta données (moins précisément que JHead), il permet de retoucher un peu la compression sans toucher à la qualité de l’image ni subir de pertes par rapport à l’image originale.

Jpegtran permet aussi de créer des images jpeg progressives, ce qui parfois est légèrement plus petit en taille (mais pas tout le temps, et en particulier pas pour les petites images).

Attention toutefois, cela retirera aussi les mentions de copyright éventuelles. Ne le faites que sur vos images ou prévoyez d’extraire d’abord cette information pour la réinjecter dans l’image finale ensuite.

JHead manipule lui aussi les entêtes et les métadonnées EXIF, IPTC et XMP. Je peux vous proposer les options -du -dc -de -di -dx. Jpegoptim propose aussi une optimisation sans perte et la possibilité de supprimer les entêtes EXIF et commentaires. Je n’ai pas de retour sur la performance de l’outil. Pour ceux que ça intéresse il y a une option pour diminuer la qualité de l’image (non activée par défaut).

Maintenant, comme on me le faisait remarquer il y a peu à propos des PNG, la meilleure compression s’obtient toujours en travaillant l’image avant de la fixer dans un format particulier. En particulier il est généralement appréciable de gérer la qualité par zones, pour avoir les détails là où c’est utile.