Je sais que je ne fais que des TOC sur une durée de quelques millisecondes, mais je me demandais pourquoi ce qui suit est vrai pour moi. Cela semble aller à l'encontre de ma logique.Performance des sélecteurs jQuery
J'ai actuellement un div qui a disparaît l'image dans le vol stationnaire:
$('div.someclass').hover(function() {
$(this).children('img').fadeOut(function(){
// do something
});
}, function() {
// do something
});
Après quelques essais, (boucle à travers sélecteurs 1000 fois, la moyenne des 9 essais) Je l'ai utilisé 3 sélecteurs différents et a conclu que la vitesse est dans cet ordre:
$(this).children('img')
court le plus rapide -avg environ 400ms;$('img', this)
- moyenne d'environ 900ms; et$(this).find('img')
court le plus lent - Avg sur les 1000ms
Cela va à l'encontre de la logique que d'avoir deux appels de fonction serait plus lent que l'un. De plus, j'ai lu qu'en interne, jQuery convertit le second cas en troisième cas, le troisième cas serait-il plus lent?
Des pensées?
Sachez également que $ ('img', this) n'est pas forcément un appel de fonction, car le processus de conversion mentionné peut aussi appeler n'importe quel nombre de fonctions. –
Eh bien, compter le nombre d'appels de fonction lorsque vous utilisez jQuery est inutile, car en interne, il appelle n'importe où entre des dizaines et des centaines de fonctions lors du traitement d'un sélecteur. – Blixt
Merci pour votre aide les gars! –