document.getElementsByTagName('a').item(0)
list.item (0) Lista vs [0]
y
document.getElementsByTagName('a')[0]
devolverá el mismo resultado ...
es el ex más rápido que el segundo?
document.getElementsByTagName('a').item(0)
list.item (0) Lista vs [0]
y
document.getElementsByTagName('a')[0]
devolverá el mismo resultado ...
es el ex más rápido que el segundo?
Selfmade prueba de rendimiento: http://jsfiddle.net/438jh/2/
La diferencia parece ser insignificante. El segundo método funciona mejor en la mayoría de los casos, pero si observas con qué frecuencia se realiza el ciclo, realmente no importa.
Chrome:
Al probar su jsFiddle en Firefox 3.6.6, obtengo aproximadamente 250 para el primer método y 475 para el segundo. –
resultados en ie8: test1: 5000+ test2: ~ 2000. Incluso tengo que marcar "no" cuando IE me pide que deje de ejecutar secuencias de comandos durante la prueba 2 y aún es significativamente más rápido. – lincolnk
@Daniel: en Firefox 3.6.8. Obtengo ~ 640 y ~ 460 .... –
función elemento es un miembro de NodeList
objeto DOM. NodeLists
son similares a una matriz, pero no son matrices reales (por ejemplo, son en vivo, de solo lectura, sin funciones de matriz).
La diferencia de rendimiento debe ser insignificante.
Yeap, leo esto antes de publicar ... http://www.nczonline.net/blog/2010/09/28/why-is-getelementsbytagname-faster-hat- queryselectorall/ – xandercoded
sugiero que se concentre en optimizaciones más importantes. – galambalazs
Para un ejemplo más práctico, esta técnica tiene el mejor rendimiento. ¡Mira el trabajo de Nicholas Zakas, YAHOO! para obtener más ejemplos:
var cachedDOMquery = Array.prototype.slice.apply(document.getElementsByTagName('a')),
i = cachedDOMquery.length,
item;
while(i--){
item = cachedDOMquery[i];
alert(item.href);
}
Eso no es una matriz. – SLaks
No importa el resultado, no importa. Si está utilizando Javascript (en un navegador web) para el rendimiento, está utilizando el idioma equivocado. Debería enfocarse en otra consideración, como la legibilidad. – HoLyVieR
@HoLyVieR solo una pregunta que fue provocada por una publicación de blog. Me gustaría imaginar que la diferencia es mínima. – xandercoded