Una cosa que todas las pruebas de rendimiento en tiempo de ejecución aquí te es otra consideración importante:
ancho de banda de red.
almacenamiento en caché $(this)
en una variable local disminuirá en general el tamaño de su escritura, especialmente cuando minified (porque this
no puede reducirse a partir de cuatro caracteres).
considerar: la salida minified
function hello(text) {
$(this).attr();
$(this).css();
$(this).data();
$(this).click();
$(this).mouseover();
$(this).mouseleave();
$(this).html(text);
}
hello('Hello world');
Cierre del compilador es
function hello(a){$(this).attr();$(this).css();$(this).data();$(this).click();$(this).mouseover();$(this).mouseleave();$(this).html(a)}hello("Hello world");
Esto ahorra 39 bytes (20%). Consideremos ahora:
function hello(name) {
var $this = $(this);
$this.attr();
$this.css();
$this.data();
$this.click();
$this.mouseover();
$this.mouseleave();
$this.html(name);
}
hello('Hello world');
La salida minified es
function hello(b){var a=$(this);a.attr();a.css();a.data();a.click();a.mouseover();a.mouseleave();a.html(b)}hello("Hello world");
Esto ahorra 74 bytes (37%), casi el doble byte nuestros ahorros. Obviamente, los ahorros en el mundo real en scripts grandes serán menores, pero aún podrá obtener reducciones significativas en el tamaño de su script mediante el almacenamiento en caché.
Realmente, solo hay un lado positivo en el almacenamiento en caché $(this)
. Obtiene ganancias de rendimiento en tiempo de ejecución minúsculas pero mensurables. Más importante aún, puede reducir el número de bytes que viajan por el cable, y que se traduce directamente en más dólares porque faster page loads equal more sales.
Cuando se mira de esa manera, en realidad se podría decir que hay un costo en dólares cuantificable a repetir $(this)
y no almacenar en caché ella.
'$ (this)' obviamente significa "' (this) 'dollars". – BoltClock
Siempre debe almacenar en caché, pero en este ejemplo específico, ni siquiera necesita hacerlo. Solo tome ventaja de jQuery encadenando: '$ (this) .addClass ('fooClass'). Attr ('data-bar'," bar "). Css ('color de fondo', 'rojo');' –