recherche
Maisoninterface Webtutoriel CSSDébogage du CSS pour la réactivité de l'interface utilisateur

Cet article est extrait du livre "The Master of CSS" écrit par Tiffany Brown. Le livre est disponible dans les grandes librairies du monde entier, et vous pouvez également acheter la version E-Book ici.

CSS Certaines propriétés et valeurs déclenchent une reflux, qui est coûteuse et peut réduire la vitesse de réponse de l'interface utilisateur - le rendu de la page, la maîtrise de l'animation et les performances de défilement seront affectés, en particulier sur les téléphones mobiles et les tablettes sur des appareils de faible puissance tels que TVS.

Qu'est-ce que le réarrangement? {.title}

Le réarrangement fait référence à toute opération qui modifie une partie ou la totalité de la disposition de la page. Par exemple, modifiez la taille d'un élément ou mettez à jour sa position gauche. Ils amènent le navigateur à recalculer la hauteur, la largeur et la position d'autres éléments dans le document.

Repaindre (repeindre) est similaire à la repection et oblige le navigateur à renvoyer une partie du document. Par exemple, le changement de la couleur de la souris lors du survole sur un bouton est une opération de révolution. Le redémarrage a moins d'impact sur le réarrangement car il n'affecte pas la taille ou la position du nœud;

Le réarrangement et le redémarrage sont généralement déclenchés par les opérations DOM, comme l'ajout ou le retrait des éléments. Mais ils peuvent également être causés par des changements dans les attributs qui affectent la taille, la visibilité ou la position des éléments. Cela est vrai si les modifications sont causées par des animations JavaScript ou basées sur CSS.

Remarque: chargement de la page {.Title}

Lorsque la page se charge, le navigateur analyse le HTML, CSS et JavaScript initiaux initiaux, ce qui déclenche toujours la réorganisation et le redémarrage.

Il est difficile d'éviter complètement de redessiner et de réarrangement dans les projets. Cependant, nous pouvons utiliser des outils de chronologie pour les identifier et réduire leur impact.

outil de chronologie {.Title}

L'outil de chronologie peut être un peu déroutant au début. Ils mesurent les performances de l'avant et enregistrent le temps nécessaire pour que diverses tâches se terminent. En enregistrant l'activité lors de l'interaction avec la page, nous pouvons savoir quel code CSS peut provoquer des goulots d'étranglement de performances.

Pour utiliser la chronologie, cliquez sur l'onglet Timeline dans l'interface des outils du développeur. Dans Chrome, Opera et Firefox, il est bien nommé "Timeline". Safari l'a nommé la «chronologie» du formulaire pluriel. Internet Explorer 11 utilise le nom plus descriptif "Réactivité de l'interface utilisateur". [9]

Dans n'importe quel navigateur, appuyez sur le bouton "Enregistrer" pour démarrer le processus d'enregistrement. Interagissez avec la partie de la page qui a des problèmes et, une fois terminé, cliquez sur le bouton correspondant pour arrêter l'enregistrement.

Selon le navigateur que vous utilisez, vous pouvez voir les données immédiatement ou après l'arrêt de l'enregistrement. Safari et Firefox affichent des données en temps réel, tandis que Chrome, l'opéra et les explorateurs Internet rendent les graphiques de performances après l'arrêt de l'enregistrement.

Le chargement des documents, les appels de fonction, les événements DOM, le recalcul de style et les opérations de dessin sont tous enregistrés dans chaque navigateur, ce qui nous permet de décrire les goulots d'étranglement des performances. Quant aux performances CSS, nous devons nous concentrer sur au moins deux aspects connexes:

  • Beaucoup d'opérations de recalcul et de dessin de style
  • Fonctionnement long de longue date, les blocs plus grands dans la chronologie représentent

Pour comprendre la situation réelle, nous comparerons deux documents de base, exemple A et exemple B. Dans les deux cas, nous déplaçons une série d'éléments div {.Literal} de la position x 0 à x position 1000. Les deux exemples utilisent la conversion CSS. Cependant, dans l'exemple A, nous animerons l'attribut left. Dans l'exemple B, nous utiliserons la transformation de transformation et animerons l'attribut transform.

Les marques des deux exemples sont les mêmes (les résultats sont illustrés à la figure 3.16):

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <title>Performance example</title>
    <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
    <button type="button" id="move">Move</button>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <🎜>
  </body>
</html>

Debugging CSS for UI Responsiveness

Figure 3.16. Cliquez sur le bouton "Déplacer" changera
Classe sur chaque élément div: moved

var move = document.getElementById('move');
move.addEventListener('click', function(e) {
    var objs = document.body.querySelectorAll('div');
    Array.prototype.forEach.call(objs, function(o){
        o.classList.toggle('moved');
    });
});
Notre code CSS est une partie différente des deux. Le CSS utilisé dans l'exemple A est le suivant:

Après
div {
  background: #36f;
  margin-bottom: 1em;
  width: 30px;
  height: 30px;
  position: relative;
  left: 0;
  transition: left 2s ease-in;
}

.moved {
    left: 1000px;
}
, cette animation générera un grand nombre de calculs de style et redessinera les indicateurs dans notre chronologie. L'image suivante montre la sortie de la chronologie de cette conversion dans Safari (figure 3.17), Chrome (figure 3.18), Internet Explorer (figure 3.19) et Firefox (figure 3.20).

Debugging CSS for UI Responsiveness Figure 3.17. Sortie de la chronologie de la conversion de position de gauche dans Internet Explorer 11 BROWNER

Debugging CSS for UI Responsiveness Figure 3.20.
.
Les attributs déclenchent la réorganisation lorsqu'ils sont modifiés, même si les modifications sont causées par l'animation ou la transformation. Debugging CSS for UI Responsiveness
Maintenant, jetons un coup d'œil au CSS de l'exemple B:
Debugging CSS for UI Responsiveness
Ici, nous utilisons la conversion et le converti entre
et left. left

Dans la plupart des navigateurs, les conversions ne déclenchent pas la réorganisation et notre calendrier contiendra moins d'opérations de repection. Cela est évident dans Safari (figure 3.21), Chrome (figure 3.22) et Internet Explorer (figure 3.23). Firefox est l'exception; comparer les figures 3.20 et la figure 3.24. Les délais de la conversion gauche et la transformation de la conversion sont très similaires.

Debugging CSS for UI Responsiveness

Figure 3.21. Navigateur -webkit-transform
Debugging CSS for UI Responsiveness Figure 3.23. de code à supprimer {.Title}
transform Malheureusement, il n'y a pas de liste claire des propriétés provoqueront du réarrangement et de redémarrer. Les déclencheurs CSS de Paul Lewis sont les plus proches, mais il est spécifique au chrome. Cependant, les navigateurs se comportent de la même manière pour bon nombre de ces propriétés, donc cette ressource vous donne au moins une idée des propriétés peuvent causer des problèmes.
Debugging CSS for UI Responsiveness Une fois que vous savez quelles propriétés
peut être problématique, l'étape suivante consiste à tester l'hypothèse. Utilisez un commentaire ou ajoutez un préfixe temporaire
pour désactiver la propriété et réexécuter le test de la chronologie. Debugging CSS for UI Responsiveness
N'oubliez pas que les performances sont relatives, pas absolues ou parfaites. L'objectif est de s'améliorer: le faire mieux qu'avant. Si les performances de l'attribut ou de l'effet sont trop lentes à accepter, elle est complètement supprimée. transform

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Travailler avec GraphQL CachingTravailler avec GraphQL CachingMar 19, 2025 am 09:36 AM

Si vous avez récemment commencé à travailler avec GraphQL ou examiné ses avantages et ses inconvénients, vous avez sans aucun doute entendu des choses comme "GraphQL ne prend pas en charge la mise en cache" ou

Barbars CSS personnalisés chics et cool: une vitrineBarbars CSS personnalisés chics et cool: une vitrineMar 10, 2025 am 11:37 AM

Dans cet article, nous plongerons dans le monde des barres de défilement. Je sais, ça ne semble pas trop glamour, mais croyez-moi, une page bien conçue va de pair

Faire votre première transition Svelte personnaliséeFaire votre première transition Svelte personnaliséeMar 15, 2025 am 11:08 AM

L'API de transition Svelte fournit un moyen d'animer les composants lorsqu'ils entrent ou quittent le document, y compris les transitions Svelte personnalisées.

Show, ne dit pasShow, ne dit pasMar 16, 2025 am 11:49 AM

Combien de temps passez-vous à concevoir la présentation de contenu pour vos sites Web? Lorsque vous écrivez un nouveau blog ou créez une nouvelle page, pensez-vous à

Construire une application Ethereum à l'aide de Redwood.js et de la fauneConstruire une application Ethereum à l'aide de Redwood.js et de la fauneMar 28, 2025 am 09:18 AM

Avec la récente montée du prix du bitcoin sur 20k $ USD, et pour lui, récemment en train de briser 30k, je pensais que cela valait la peine de reprendre une profonde plongeon dans la création d'Ethereum

Que diable sont les commandes NPM?Que diable sont les commandes NPM?Mar 15, 2025 am 11:36 AM

Les commandes NPM exécutent diverses tâches pour vous, soit en tant que processus unique ou en cours d'exécution pour des choses comme le démarrage d'un serveur ou la compilation de code.

Utilisons (x, x, x, x) pour parler de spécificitéUtilisons (x, x, x, x) pour parler de spécificitéMar 24, 2025 am 10:37 AM

Je discutais avec Eric Meyer l'autre jour et je me suis souvenu d'une histoire d'Eric Meyer de mes années de formation. J'ai écrit un article de blog sur la spécificité CSS, et

Comment utilisez-vous CSS pour créer des effets de texte, tels que des ombres de texte et des gradients?Comment utilisez-vous CSS pour créer des effets de texte, tels que des ombres de texte et des gradients?Mar 14, 2025 am 11:10 AM

L'article discute de l'utilisation de CSS pour les effets de texte comme les ombres et les gradients, les optimiser pour les performances et l'amélioration de l'expérience utilisateur. Il répertorie également les ressources pour les débutants (159 caractères)

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire