He estado leyendo más últimamente sobre la eficiencia de los diferentes motores de selección. Sé que jQuery usa el motor Sizzle y this blog post sobre algunas cosas de jQuery mencionó que el motor Sizzle dividirá su selector en una matriz y luego analizará de izquierda a derecha.jQuery Selectors, efficiency
Luego, de derecha a izquierda, comienza a descifrar cada elemento con expresiones regulares. Lo que esto significa también es que la parte de la derecha de su selector debe ser lo más específica posible, por ejemplo, un nombre de identificación o etiqueta.
Mi pregunta es si es más eficiente para ejecutar un selector con simplemente el ID especificado o el nombre de la etiqueta, así:
var div = $('#someId');
//OR
var div = $('div#someId');
Desde que escribo mi CSS en forma div#someId
tiendo para hacer mis selectores de la misma manera, ¿estoy causando que Sizzle realice un trabajo extra (suponiendo que QuerySelectorAll no está disponible)?
¡Buena pregunta! Estaba pensando en hacer una pregunta similar yo mismo. –
Para preguntas de rendimiento, la mejor respuesta suele ser intentarlo usted mismo. jsperf.com puede ayudarlo a evaluar los fragmentos de javascript. – Eduardo