Maison > interface Web > js tutoriel > Question de vitesse jQuery.each vs pour Loop

Question de vitesse jQuery.each vs pour Loop

Jennifer Aniston
Libérer: 2025-02-24 09:20:10
original
500 Les gens l'ont consulté

Vanilla JavaScript Loops vs JQuery.each: Une comparaison des performances

Cet article explore les différences de performances entre l'utilisation de boucles Vanilla JavaScript for et la méthode $.each de JQuery pour l'itération du tableau. Nous démontrerons que, pour la vitesse, les boucles de vanille for, en particulier celles avec une mise en cache variable, surpasse considérablement $.each. Cela peut entraîner des améliorations de vitesse allant jusqu'à 84%, comme le montre les repères JSPERF (lien omis pour la concision, mais facilement consultable).

Speed Question jQuery.each vs. for loop

jQuery.acha EXEMPLE:

$.each(myArray, function() {
  let currentElement = this; 
  // ... your code using currentElement ...
});
Copier après la connexion

pour la boucle avec une mise en cache variable (le plus rapide):

const len = myArray.length;
for (let i = 0; i < len; i++) {
  let currentElement = myArray[i];
  // ... your code using currentElement ...
}
Copier après la connexion

pour la boucle sans mise en cache variable:

for (let i = 0; i < myArray.length; i++) {
  let currentElement = myArray[i];
  // ... your code using currentElement ...
}
Copier après la connexion

Tentative de longueur pré-calculée: (performances similaires à la version mise en cache)

Speed Question jQuery.each vs. for loop

let len = myArray.length;
let i = 0;
for (; i < len; i++) {
  let currentElement = myArray[i];
  // ... your code using currentElement ...
}
Copier après la connexion

Questions fréquemment posées (FAQ):

Bien que cet article se concentre sur les performances, voici un résumé des principales différences et considérations pour choisir entre $.each et for LOOCS:

  • Fonctionnalité: JQuery's $.each ittera les tableaux et les objets, offrant une syntaxe concise. for Les boucles fournissent un contrôle plus direct sur l'itération.

  • Performance: for Les boucles (en particulier avec la mise en cache variable) sont généralement plus rapides en raison de la réduction des frais généraux d'appel de fonction. La différence devient plus prononcée avec des ensembles de données plus importants.

  • lisibilité: $.each peut améliorer la lisibilité du code pour des itérations simples. for Les boucles sont plus explicites.

  • Rompre la boucle: Retour false du rappel $.each rompt la boucle. for Les boucles utilisent break.

  • Accès d'index: Les deux donnent accès à l'index actuel (bien que différemment).

  • NodeList / HtmlCollection: $.each Fonctionne avec les nodelists et htmlcollections, mais this se réfère à un élément DOM, pas un objet jQuery. Enveloppez avec $(this) pour utiliser les méthodes jQuery.

  • natif forEach: natif de JavaScript forEach offre une syntaxe similaire à $.each mais avec des performances potentiellement meilleures que la mise en œuvre de JQuery.

  • itération d'objet: Les deux peuvent itérer les objets.

  • Tableaux clairsemés: $.each sautent des indices non définis dans des tableaux clairsemés, tandis que les boucles for les incluent.

  • Chaîne: $.each ne prend pas en charge le chaînage comme les autres méthodes jQuery.

En résumé, pour des performances optimales, en particulier lorsque vous traitez avec de grands ensembles de données, hiérarchisez les boucles JavaScript Vanilla for avec une mise en cache variable. JQuery's $.each est plus pratique pour les ensembles de données plus petits ou lorsque la lisibilité est primordiale. Considérez le natif de JavaScript forEach comme une alternative plus rapide à la $.each.

de jQuery.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal