Optimiser les performances des pages Web : conseils pour éviter de redessiner et de redistribuer
Avec la popularité des appareils mobiles et l'augmentation continue du contenu Web, les utilisateurs ont des exigences de plus en plus élevées en matière de performances des pages Web. Dans le processus d'optimisation des performances des pages Web, nous rencontrons souvent deux concepts très importants, à savoir le repaint et le reflow. Ces deux concepts ont un impact important sur les performances des pages Web. Éviter ou réduire correctement les redessins et les redistributions peut améliorer considérablement la vitesse de chargement et l'expérience utilisateur des pages Web. Cet article présentera quelques techniques de redessinage et d'évitement de redistribution pour aider les développeurs à optimiser les performances des pages Web.
1. Qu'est-ce que le redessin et la redistribution
Le redessin signifie que lorsque les attributs de style de l'élément DOM changent, mais n'affectent pas sa disposition, le navigateur dessinera le nouveau style à l'écran, c'est-à-dire l'opération de redessin. L'opération de redessinage n'implique pas de recalculer la taille ou la position de l'élément, elle est donc moins coûteuse.
Reflow signifie que lorsque les attributs de disposition d'un élément DOM changent, le navigateur recalculera la taille et la position de l'élément et réorganisera les autres éléments associés, c'est-à-dire effectuera une opération de redistribution. L'opération de redistribution est relativement coûteuse et peut entraîner un redessinage des pages, voire des problèmes de scintillement.
2. Comment éviter de redessiner et de redistribuer
L'utilisation de l'attribut transform pour modifier la position des éléments est plus efficace que d'utiliser les attributs haut et gauche pour positionner les éléments. En effet, la propriété transform est gérée par le GPU et ne provoque pas de redistribution ou de redessinage. Par conséquent, pour les opérations nécessitant le déplacement d’un élément, essayez d’utiliser l’attribut transform au lieu des attributs top et left.
L'attribut display:none fera disparaître l'élément du flux du document et déclenchera une redistribution et un redessin. L'attribut visibilité:hidden déclenchera uniquement un redessin, pas une redistribution. Si vous devez basculer entre l'affichage et le masquage d'un élément, essayez d'utiliser l'attribut de visibilité pour éviter les opérations de redistribution.
Lorsque nous devons effectuer des opérations de style sur des éléments, essayez de concentrer l'opération en une seule opération au lieu de la répartir sur plusieurs opérations. Étant donné que chaque opération sur les propriétés de style déclenche une redistribution et un redessinage, concentrer les opérations en une seule opération peut réduire le nombre de redistributions et améliorer les performances. Vous pouvez utiliser des classes pour modifier plusieurs propriétés de style à la fois, ou utiliser des méthodes pour retirer des éléments du flux de documents afin d'éviter la redistribution.
Lorsque vous devez insérer un grand nombre d'éléments DOM, vous pouvez utiliser DocumentFragment pour la mise en cache et réduire le nombre de refusions. Un DocumentFragment est un objet document léger dans lequel vous pouvez manipuler des éléments DOM et réduire les redistributions en insérant le DocumentFragment dans le document en une seule fois.
Les propriétés de mise en page incluent la largeur, la hauteur, les marges, le remplissage, etc. de l'élément. Lors de l'opération sur ces propriétés, la redistribution et le redessin seront déclenchés. Par conséquent, essayez d'éviter de modifier fréquemment les attributs de disposition des éléments. Vous pouvez plutôt utiliser le positionnement, le positionnement absolu, le flottement et d'autres méthodes.
L'utilisation d'animations et de transitions CSS3 peut tirer parti de l'accélération matérielle pour animer la page. Par rapport à l'utilisation de JavaScript pour obtenir des effets d'animation, l'utilisation d'animations et de transitions CSS3 peut offrir de meilleures performances et réduire le nombre de redistributions et de redessins.
Pour les situations où vous devez surveiller le défilement, les changements de taille de fenêtre et d'autres événements, vous pouvez utiliser la limitation et l'anti-shake pour réduire le nombre de déclencheurs d'événements, réduisant ainsi le nombre de refusions. et redessine. La limitation signifie effectuer une opération une seule fois dans un certain intervalle de temps, tandis que l'anti-tremblement signifie effectuer à nouveau une opération après que l'opération a été arrêtée pendant un certain temps.
Résumé
L'optimisation des performances des pages Web est une tâche qui prend en compte de manière globale tous les aspects. Le redessinage et la redistribution sont deux facteurs importants qui affectent les performances des pages Web. En évitant raisonnablement le redessinage et la redistribution, la vitesse de chargement des pages Web peut être améliorée, le temps d'attente des utilisateurs peut être raccourci et l'expérience utilisateur peut être améliorée. Cet article présente quelques techniques pour éviter le redessinage et la redistribution, telles que l'utilisation de transformation au lieu des propriétés haut/gauche, l'utilisation de la visibilité au lieu de display:none, etc. J'espère que ces conseils pourront aider les développeurs à optimiser les performances des pages Web et à offrir une meilleure expérience utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!