Vous entendez certainement parler d'un sujet à la mode si vous vous intéressez un tant soit peu au développement de sites internet, à savoir les performances web.
Les performances web, késako ? Je vais essayer de vulgariser au mieux.
C'est un sujet plutôt large, mais grosso modo, c'est la rapidité d'affichage d'une page web, et plus largement, d'un site internet. Cela peut sembler stupide, la première réaction si je ne réfléchis pas : pourquoi faire ça, on a tous une connexion ADSL maintenant.
Bien évidemment, ce n'est pas aussi réducteur que cela... cela reviendrait si je fais une analogie peut-être plus parlante à dire "pourquoi je devrais avoir une voiture qui consomme 6 litres aux 100 km, alors que j'ai un réservoir de 60 litres ?". Je suppose que l'analogie vous fait sourire... car déjà l'essence coûte cher, et globalement, on peut apprécier de polluer moins et de moins avoir à faire le plein souvent, car cela prend du temps.
Bref, la mode est à l'optimisation des pages, et ce, pour plusieurs raisons :
- La rapidité d'affichage est importante, en général, l'internaute apprécie de ne pas attendre pour consulter vos pages,
- si cet internaute est en situation de mobilité (il consulte un site sur un Smartphone par exemple), avoir une page qui s'affiche rapidement est très appréciable (surtout si la connexion n'est pas aussi bonne que sur un ordinateur),
- c'est un des critères de qualité pour le référencement,
- et accessoirement, cela peut vous permettre de diminuer le poids du trafic émis par votre site (ce trafic n'est pas gratuit).
- Etc. les avantages sont très nombreux.
Seulement, optimiser une page... ça revient à quoi ? Il y a plusieurs approches. Prenons les plus évidentes et les plus simples à mettre en oeuvre.
On peut déjà se dire qu'en envoyant moins de fichiers, cela prendra moins de temps pour les afficher. Ce qui semble logique, pourquoi utiliser 5 fichiers, si deux suffisent ? Là, on peut, si c'est possible, fusionner nos fichiers javascript et nos feuilles de styles. Idem pour les images, on peut tout mettre nos images dans une seule et même image, ou du moins les regrouper pour diminuer le nombre de fichiers. Cela s'appelle minimiser les requêtes HTTP .
On peut également se dire que d'envoyer des fichiers moins lourds améliorera la vitesse d'affichage. Là, on est dans l'évidence. Plusieurs méthodes :
- Déjà un code léger et efficace... pas besoin de dire "pour le
li
qui est dans la liste bidule qui est comprise dans machin"... s'il suffit de dire que "tous lesli
de la liste bidule doivent être ainsi". Idem pour le HTML, pas besoin de 4 balisesdiv
si une seule est nécessaire. - Idem pour les images, pourquoi utiliser une image de dimensions supérieures qu'à l'affichage sur le site ? Et autant les optimiser.
- Ensuite, on peut dire qu'on peut supprimer tout caractère non nécessaire, cela s'appelle "minifier" un fichier.
- Et enfin, on peut se dire que si l'on pouvait compresser ces fichiers entre l'envoi du serveur et l'arrivée au navigateur... c'est possible, on appelle cela la compression GZIP ou DEFLATE.
Ainsi, les fichiers auront bien été réduits point de vue poids.
Après, on peut également se dire que les fichiers qui seront utilisés plusieurs fois par le site et qui ne changent pas (par exemple l'image de mon bandeau), cela serait bien d'indiquer que ces derniers n'ont pas changé, et qu'il n'est pas nécessaire de les renvoyer. Cela s'appelle mettre en cache les contenus.
Ensuite, on peut se poser la question légitime d'avoir un serveur rapide... afin d'envoyer rapidement ces données. L'idée étant aussi que le serveur de bases de données soit rapide également... et surtout utilisé à bon escient. A quoi bon sélectionner tous les champs d'une table, si seulement quelques uns sont nécessaires ? Là, c'est de l'optimisation côté serveur.
En tout cas, voila déjà un bon début... qui peut déjà prendre pas mal de temps à mettre en place, car cela peut impliquer beaucoup de changements. Je reviendrai sur le sujet plus tard !
http://braincracking.org/2010/10/27/concours-de-performances-web-a-vous-de-jouer/