Ce sont principalement des choses que je me suis demandées, peut-être que quelqu'un peut me donner un peu plus d'informations à leur sujet, je vais partager ce que j'ai remarqué jusqu'à présent !
La première chose que je me suis demandée... y a-t-il une différence bonne ou raison à utiliser :
$('element').each(function (i, el) { });
-- contre
$.each($('element'), function (i, el) { });
En regardant la documentation de jQuery, je ne vois aucune raison de choisir l'un ou l'autre (peut-être connaissez-vous un exemple ou des choses supplémentaires que l'un peut faire par rapport à l'autre).
Mais le plus important, c'est que je m'inquiète vitesse aquí
// As opposed to $.each() looping through a jQuery object
// -- 8x faster
for (var i = 0, $('.whatever').length; i < len; i++) {
$('.whatever')[i] // do stuff
}
Si vous regardez ce jsFiddle DEMO ici vous verrez que la différence de vitesse est équivalente avec l'un ou l'autre, mais plus important encore, j'ai l'impression que je devrais siempre utiliser for()
des boucles...
J'étais en train de faire des tests unitaires (en bouclant chacune des 5 fonctions de scénario différentes, 50 000 fois), en bouclant simplement un ensemble d'éléments de liste, et en définissant une fonction data-newAttr
rien de spécial.
QUESTION : : Je suppose que ma plus grande question est, pourquoi pas siempre utiliser des boucles for en itérant sur un objet ? Y a-t-il un intérêt à utiliser $.each() ? Utilisez-vous toujours les boucles for() même lorsque vous parcourez des objets jQuery ?
Function type: Execution Time:
_testArea.each() + $(this) 1947 <-- using $(this) slows it down tremendously
$.each() + $(this) 1940
_testArea.each() + el(plain JS) 458 <-- using the Element speeds things up
$.each() + el(plain JS) 452
for() loop + plainJS[0] iteration 236 <-- over 8x faster
C'est juste mon avis. :)