Les performances web... pour les nuls

Les performances web... pour les nuls (le 30 octobre 2010)

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 les li de la liste bidule doivent être ainsi". Idem pour le HTML, pas besoin de 4 balises div 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 !

3 commentaires

Posté par jpvincent le 31/10/2010 à 10:40:19
pour s'autoformer pour les débutants, je conseille une petite série de pages et d'outils (voir directement en fin de post) :
http://braincracking.org/2010/10/27/concours-de-performances-web-a-vous-de-jouer/
Posté par Jojo le 31/10/2010 à 16:48:32
Arf, c'est gentil d'expliquer ça au néophyte ! Mais chut, faut pas dire que c'est moi qui te l'ai demandé... (clin d’oeil)
Posté par Nico le 18/11/2010 à 9:30:36
Jpvincent : oui, très bon post, vu que je l'ai mentionné dans un autre billet ! (sourire)

Jojo : pas de souci, et je trouve que savoir vulgariser est très important aussi.

Ajouter un commentaire









L'option « Se souvenir de mes informations » utilise un cookie, elle ne sera pas effective si vous les avez désactivés.

Les balises HTML ne seront pas interprétées, il est donc inutile d'en mettre. Par contre, les sauts de lignes de votre commentaire seront pris en compte, ne mettez donc pas de <br />, le site s'en chargera. Bien sûr, un commentaire vide ne sera pas ajouté !

L'auteur (autrement dit moi) n'est pas responsable des éventuelles fautes d'orthographe dans les commentaires.
Tout propos raciste et/ou insultant sera supprimé sans préavis. Les commentaires hors de propos destinés à faire de la pub pour des sites seront également supprimés sans ménagement.

Je vous prie de me pardonner, j'ai énormément de mal à lire le "langage" SMS, il n'est donc pas du tout interdit de s'abstenir de l'utiliser. Qui plus est, vous avez sûrement un clavier digne de ce nom et pas celui d'un téléphone portable. Ne vous gênez pas pour utiliser l'option "Prévisualiser" si vous voulez vous relire avant de poster, je vous en remercie d'avance !

Cet article a été écrit par Nicolas Hoffmann.

Ce site est la propriété de Nicolas Hoffmann.
Tous droits réservés, les textes du blog sont publiés sous licence CC BY-NC-SA.