change de nom...
Après avoir vu, dans l'article précédent, les impacts de la vitesse de chargement d'un site ou d'une page web sur le business, le SEO, l'environnement...
Nous aborderons aujourd'hui la mise en place de systèmes de cache, le packing et la minification et les solutions open sources qui vous permettront d'améliorer la performance de votre site web et d'atteindre vos objectifs.
Mais avant d'aborder les actions à mener, prenons quelques minutes pour faire le point sur métriques à suivre pour mesurer les performances d'un site web.
Dans cette vidéo de 8 minutes, Vincent Dussud, DSI du Groupe Sandaya nous partage son expérience à travers les points suivant :
Chronologie de la vidéo 00:00 Intro 00:25 Le Groupe Sandaya, campings de luxe 4 & 5 01:34 Les missions de Vincent Dussud, DSI du Groupe Sandaya 02:15 Mesurer les performances, un enjeu central 03:03 Quelles métriques côté navigateur ? 04:33 Quelles métriques côté serveur ? 05:51 Créer un dashboard de suivi 07:24 Bonus |
Cette vidéo est extraite du webinaire intitulé : Performances Web, l'indispensable allié de votre chiffre d'affaires, réalisé en collaboration avec Ibexa DXP en juillet 2020.
Nous connaissons désormais quelles sont les métriques des performances web, passons maintenant aux actions à mettre en place pour les optimiser.
Objectif de la mise en cache :
Enregistrer les résultats des requêtes afin de les restituer lors de demandes similaires et réduire le temps de traitement et d’affichage d’une page.
On retrouve des systèmes de cache au niveau :
Toutes les informations relatives aux caches HTTP sont accessibles sur les liens suivants:
https://tools.ietf.org/html/rfc7234
https://developer.mozilla.org/fr/docs/Web/HTTP/Cache
Le cache navigateur permet de stocker les données directement dans le navigateur de l’utilisateur. Il s’agit ainsi de mettre en cache les éléments statiques du site, éléments qui n’ont pas besoin d’être rechargés à chaque requête. Exemples : pages, assets ou encore requêtes AJAX.
Néanmoins, en cas de changement d'asset, il se peut que les navigateurs n'aient pas la nouvelle version immédiatement, ce qui peut entraîner des comportements incohérents. C'est pourquoi il est recommandé de rajouter un élément aux noms des fichiers qui permet d'avertir les navigateurs qu'ils doivent demander la nouvelle version. On parle alors de "cache-busting".
Réaliser plusieurs requêtes sur le disque prend du temps, et les systèmes de cache répondent à ce problème.
Dans cette optique d'amélioration du temps de requête, il est recommandé de mettre en place un système de cache afin d'accélérer les demandes vers la couche de persistance.
Un site web, pour être engageant, embarque une certaine quantité de ressources afin de mettre en page et de rendre interactif le contenu. Ces "assets" (fichiers JS, CSS, images, fonts …) impliquent un temps de téléchargement et d'interprétation qui se rajoute au chargement de la page
L’objectif:
Rendre ces fichiers les plus légers possible afin d’améliorer la rapidité.
Une première solution est de supprimer tous les caractères inutiles de ces assets : espaces, commentaires, sauts de lignes, séparateurs de bloc afin de réduire la quantité de code et donc le poids du fichier. On parle donc de minification des assets.
L’intérêt est de rendre le fichier plus léger, et donc de réduire le temps de téléchargement et d'interprétation coté navigateur. De plus, la compression de fichiers mise en place par les serveurs web (par exemple, le module gzip d'applications comme NGINX) peut se baser sur un asset plus petit pour délivrer un fichier encore plus léger.
Considérations valables pour HTTP /1.1
Étant donné qu’on a plusieurs fichiers JS et CSS, plutôt que d’ouvrir un tunnel réseau par fichier (qui ne peuvent pas être traités en même temps dans le cas d'un site servi en HTTP/1*), une solution est d’ouvrir un seul tunnel pour un fichier qui contient tous les assets concaténés en un seul. Conséquence: c’est plus rapide !
Et bien évidemment, packer des fichiers qui sont minifiés est encore mieux, c’est pourquoi packing et minification fonctionnent le plus souvent ensemble.
*Complément:
D'autres solutions techniques liées au chemin critique de rendu, Pattern PRPL et HTTP/2seront traitées dans nos prochains articles...