change de nom...
Cet article est basé sur ce guide : https://developers.google.com/web/fundamentals/performance/critical-rendering-path?hl=en écrit par Ilya Grigorik, également disponible en français.
Dans l'article précédent, nous avons mis en place des solutions (open-source) afin d'améliorer le temps de réponse d'un serveur Web. Nos systèmes de caches sont prêts et nos assets (fichiers JS, CSS ...) sont minifiés & packés. Comment peut-on aller plus loin dans l'optimisation du temps de chargement de nos pages web ?
Connaître le principe du rendu d’une page permet de mieux comprendre le processus du rendu d’un navigateur.
L’étape intermédiaire entre la réception de la réponse du serveur Web et l’affichage de la page sous forme de pixels à l'écran est appelé chemin critique du rendu.
Optimiser le chemin critique du rendu est indispensable pour améliorer la vitesse de chargement des pages.
Source Schéma : Ilya Grigorik
Avant que le navigateur puisse afficher la page, le balisage HTML est transformé en DOM (Document Object Model, ou modèle d'objet de document) et le balisage CSS est transformé en CSSOM (modèle d’objet CSS) de façon indépendante.
Le DOM représente le contenu de la page (texte, image, média, formulaires...) sous forme d'arborescence.
Chaque fois que le navigateur traite le balisage HTML renvoyé par le serveur Web, il doit suivre les étapes ci-dessous :
Après la construction du DOM, nous avons les informations sur le contenu de la page, néanmoins nous n’avons aucune information sur l'aspect que doivent avoir les éléments lorsqu'ils sont affichés.
Pendant la construction du DOM, le navigateur rencontre des balises faisant référence à une feuille de style CSS, le plus souvent externe.
Cette ressource étant nécessaire pour afficher la page, on envoie donc une demande pour cet asset.
Lors de l'interprétation des feuilles de style, le navigateur va construire une autre arborescence qui intègre les informations sur les styles de la page (disposition, apparence...).
Cette arborescence est appelée le modèle objet CSS (ou CSSOM pour CSS Object Model).
Pour que le navigateur puisse construire le CSSOM, il doit effectuer les mêmes étapes que celles mises en place pour créer le DOM : Octets CSS > caractères > jetons > nœuds > CSSOM
Il s’agit maintenant de combiner le DOM et le CSSOM pour créer une arborescence d’affichage qui sera utilisée pour calculer la mise en page de chaque élément.
Cette arborescence du rendu est ce qui permet au navigateur de transformer le contenu de la réponse en pixels à l'écran.
À chaque requête, avant de faire le rendu, le navigateur :
Ces étapes constituent le chemin critique du rendu
Source schéma : https://developers.google.com/web/fundamentals/performance/critical-rendering-path/analyzing-crp
Ces étapes permettent d'en extraire les règles suivantes :
3 métriques permettent d’analyser le chemin critique du rendu d’une page web :
Par exemple, sur le schéma ci-dessus :
Maintenant que nous avons une méthode pour mesurer le rendu d'une page, nous savons maintenant que pour optimiser le temps de chargement de nos pages, nous devons réduire ces valeurs.
La mise en cache, le packing et la minification abordés dans l'article précédent (Améliorez vos performances web 2/5) contribuent à réduire ces métriques :
Dans notre prochain article nous mettrons en place des méthodes pour réduire systématiquement ces métriques grâce notamment auPattern PRPL...