Tous les tests de performance en cours d'exécution ne tiennent pas compte d'un autre élément important :
Largeur de bande du réseau.
Mise en cache $(this)
dans une variable locale diminuera généralement la taille de votre script, en particulier lorsqu'il est minifié (parce que this
ne peut être réduit à partir de quatre caractères).
Envisager :
function hello(text) {
$(this).attr();
$(this).css();
$(this).data();
$(this).click();
$(this).mouseover();
$(this).mouseleave();
$(this).html(text);
}
hello('Hello world');
Le résultat minifié du compilateur de fermeture est le suivant
function hello(a){$(this).attr();$(this).css();$(this).data();$(this).click();$(this).mouseover();$(this).mouseleave();$(this).html(a)}hello("Hello world");
Cela permet d'économiser 39 octets (20 %). Considérons maintenant :
function hello(name) {
var $this = $(this);
$this.attr();
$this.css();
$this.data();
$this.click();
$this.mouseover();
$this.mouseleave();
$this.html(name);
}
hello('Hello world');
Le résultat de la minification est le suivant
function hello(b){var a=$(this);a.attr();a.css();a.data();a.click();a.mouseover();a.mouseleave();a.html(b)}hello("Hello world");
Cela permet d'économiser 74 octets (37 %), ce qui double presque notre économie d'octets. Il est évident que les économies réalisées dans le monde réel pour les grands scripts seront moindres, mais la mise en cache vous permettra de réduire considérablement la taille de vos scripts.
En réalité, la mise en cache n'a que des avantages $(this)
. Vous obtenez des gains de performance minuscules mais mesurables. Plus important encore, vous pouvez réduire le nombre d'octets qui transitent sur le câble, et ce qui se traduit directement par plus d'argent parce que un chargement plus rapide des pages se traduit par une augmentation des ventes .
Si l'on considère les choses sous cet angle, on peut dire qu'il y a une coût en dollars à la répétition $(this)
et ne pas le mettre en cache.