Digamos que tengo $('mySelector:first');
y $('mySelector').first();
. ¿Cuál es la forma más eficiente? Miré en la fuente, pero todavía no podía entenderlo.jQuery ¿qué es más rápido: selectores o métodos?
Parece que en el primer caso jQuery pasa a través de cada elemento hasta que consigue la primera:
CHILD: function(elem, match) {
var type = match[1],
node = elem;
switch (type) {
...
case "first":
while ((node = node.previousSibling)) {
if (node.nodeType === 1) {
return false;
}
}
if (type === "first") {
return true;
}
node = elem;
...
}
}
En segundo caso rebanadas jQuery la colección, pero no estoy seguro de qué tan eficiente es:
function first() {
return this.eq(0);
};
function eq(i) {
return i === -1 ?
this.slice(i) :
this.slice(i, +i + 1);
};
La diferencia de velocidad es tan mínima que no importará en lo más mínimo. – Alex
@Phrogz eso es realmente obsesivo. – Raynos
@Raynos Gracias (?) :) – Phrogz