


Pourquoi la manipulation de Dom est-elle lente et comment peut-elle être optimisée?
Les principales raisons du ralentissement du fonctionnement du DOM sont le coût élevé du réarrangement et l'efficacité à faible accès. Les méthodes d'optimisation incluent: 1. Réduire le nombre d'accès et les valeurs de lecture du cache; 2. Opérations de lecture et d'écriture par lots; 3. Fusion des modifications, utilisez des fragments de document ou des éléments cachés; 4. Évitez la gigue de mise en page et manipulez de manière centralisée lire et écrire; 5. Utilisez le cadre ou la demande de requête Frame pour mettre à jour de manière asynchrone.
L'exploitation directe du DOM est en effet facile à ralentir, en particulier lorsque des mises à jour fréquentes ou le traitement de grands nœuds. Il y a deux raisons principales: la première est que le Dom lui-même est une structure de données indépendante et est géré séparément du moteur JavaScript; L'autre est que chaque modification peut déclencher la reflux (repeindre) du navigateur et la repeinte (repeindre) et ces opérations sont très coûteuses.
Pour optimiser les opérations DOM, la clé consiste à réduire le nombre de visites, à fusionner les actions de modification et à éviter les dispositions synchrones forcées.
Réduire le nombre de visites DOM
Les opérations DOM sont beaucoup plus lentes que les opérations variables JS ordinaires, en particulier lorsque la lecture des attributs tels que offsetWidth
ou getBoundingClientRect()
. Ce type d'opération "Read" oblige le navigateur à calculer immédiatement le style, ce qui entraîne une disposition synchrone forcée.
Pratiques suggérées:
- Cache les valeurs qui doivent être lues plusieurs fois et ne sont lues qu'une seule fois.
- Essayez de sauver l'état avec des variables en JS, plutôt que de l'obtenir à plusieurs reprises du DOM.
- Lire et écriture par lots: Lisez d'abord toutes les données, puis effectuez un traitement logique et écrivez enfin au DOM uniformément.
Par exemple:
const elements = document.QuerySelectorall ('. item'); Soit totalHeight = 0; Elements.ForEach (el => { TotalHeight = El.offsetheight; // ne lis qu'une seule fois});
Fusionner les modifications DOM pour éviter un réarrangement fréquent
Chaque fois que le DOM est modifié, une réorganisation peut déclencher. S'il est modifié cinq fois d'affilée, le navigateur peut effectuer cinq rénovations. Mais en réalité, nous n'avons besoin que du dernier résultat.
Méthode d'optimisation:
- Utilisez un fragment de document (documentFragment) aux nœuds d'insertion par lots.
- Cachez l'élément, puis fonctionnez-le et affichez-le après l'achèvement.
- Utilisez Virtual Dom ou Frameworks (tels que React) pour effectuer automatiquement des mises à jour différentielles.
Par exemple:
const fragment = document.CreateDocumentFragment (); pour (soit i = 0; i <100; i) { const div = document.CreateElement ('div'); div.textContent = 'item' i; fragment.ApendChild (div); } document.body.ApendChild (fragment); // La réorganisation n'est déclenchée qu'une seule fois
Évitez la gigue de mise en page (mise en page)
La soi-disant la gigue de mise en page est de lire et d'écrire en continu les propriétés DOM dans une boucle, ce qui fait que le navigateur a réorganisé à plusieurs reprises.
Méthodes d'écriture d'erreur courantes:
pour (soit i = 0; i <items.length; i) { items [i] .style.width = contener.offsetwidth 'px'; // réorganisation forcée de chaque lecture}
Méthode d'optimisation:
- Lisez d'abord la répartition offset et mettez-le en cache.
- Toutes les opérations d'écriture sont traitées de manière centralisée.
Utilisez des outils modernes et des stratégies de mise à jour asynchrones
La plupart des cadres frontaux ont désormais des mécanismes d'optimisation des performances intégrés, tels que la réconciliation de React et les systèmes réactifs de VUE, qui mettra à jour le DOM au bon moment au lieu de prendre effet immédiatement.
Si vous implémentez vous-même une logique similaire, vous pouvez utiliser requestAnimationFrame
pour contrôler le rythme de mise à jour ou utiliser les limites anti-titres pour contrôler la fréquence de fonctionnement DOM dans les événements à haute fréquence (tels que redimensionner, défiler).
En général, le fonctionnement du DOM lent est principalement dû au coût élevé du réarrangement et de la redémarrage et de l'efficacité à faible accès. Tant que vous réalisez "moins de lecture et d'écriture, de fusionner les opérations et de retarder la mise à jour", vous pouvez améliorer efficacement les performances. Ces techniques ne sont pas nécessairement compliquées, mais elles sont très pratiques.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le réglage des performances de Nginx peut être obtenu en ajustant le nombre de processus de travail, la taille du pool de connexion, l'activation des protocoles de compression GZIP et HTTP / 2 et en utilisant l'équilibrage du cache et de la charge. 1. Ajustez le nombre de processus de travail et la taille du pool de connexion: Worker_ProcessesAuto; Événements {Worker_Connections1024;}. 2. Activer la compression GZIP et le protocole http / 2: http {gzipon; serveur {écouter443sslhttp2;}}. 3. Utilisez l'optimisation du cache: http {proxy_cache_path / path / to / cachelevels = 1: 2k

Les méthodes pour améliorer les performances d'Apache incluent: 1. Ajustez les paramètres Keepalive, 2. Optimiser les paramètres multi-processus / thread, 3. Utilisez MOD_DEFLATE pour la compression, 4. Implémentez le cache et l'équilibrage de la charge, 5. Optimiser la journalisation. Grâce à ces stratégies, la vitesse de réponse et les capacités de traitement simultanées des serveurs Apache peuvent être considérablement améliorées.

Les conseils pour améliorer les performances dans la conception de classes C++ incluent : éviter les copies inutiles, optimiser la disposition des données et utiliser constexpr. Cas pratique : Utiliser le pool d'objets pour optimiser la création et la destruction d'objets.

Lors du traitement des données XML et RSS, vous pouvez optimiser les performances via les étapes suivantes: 1) Utilisez des analyseurs efficaces tels que LXML pour améliorer la vitesse d'analyse; 2) Utilisez des analyseurs de sax pour réduire l'utilisation de la mémoire; 3) Utiliser les expressions XPATH pour améliorer l'efficacité d'extraction des données; 4) Implémentez le traitement parallèle multi-processus pour améliorer la vitesse de traitement.

Les stratégies pour améliorer les performances de l'application YII2.0 incluent: 1. Optimisation des requêtes de base de données, en utilisant QueryBuilder et ActiveRecord pour sélectionner des champs spécifiques et limiter les ensembles de résultats; 2. Stratégie de mise en cache, utilisation rationnelle des données, de la requête et du cache de page; 3. Optimisation au niveau du code, réduction de la création d'objets et utilisant des algorithmes efficaces. Grâce à ces méthodes, les performances des applications YII2.0 peuvent être considérablement améliorées.

Améliorez les performances de PHP en permettant à OPCache de mettre en cache le code compilé. Utilisez un framework de mise en cache tel que Memcached pour stocker les données fréquemment utilisées. Réduisez les requêtes de base de données (par exemple en mettant en cache les résultats des requêtes). Optimisez le code (par exemple, utilisez des fonctions en ligne). Utilisez des outils d'analyse des performances tels que XHProf pour identifier les goulots d'étranglement des performances.

PhpapplicationsCanBeoptimizedByfocusingOnCodeeFeency, mise en cache, caches de base de données et ServerConfiguration.1)

L'optimisation de la disposition des structures de données en C peut être réalisée à travers les étapes suivantes: 1. Ajuster l'alignement de la mémoire et réduire le rembourrage, tels que le tri des membres de la structure par taille. 2. Améliorer la convivialité du cache et assembler des membres fréquemment visités ensemble. 3. Optimisez le tri des membres du struct et placez les membres les plus visités devant. 4. Redimensionner la structure afin qu'il s'agisse d'un multiple de lignes de cache pour réduire l'accès aux lignes croisées. Grâce à ces méthodes, les performances du programme et l'utilisation de la mémoire peuvent être considérablement améliorées.
