Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

193
Vistas
¿Qué tiene un mayor impacto en el rendimiento: agregar un detector de eventos adicional o necesitar consultar el DOM repetidamente?

Estoy tratando de entender la mejor manera de optimizar el rendimiento en JavaScript. Para simplificar, tengo un código en el que un montón de botones están asociados con un elemento específico, y necesito poder realizar cambios tanto en el botón como en su elemento asociado cada vez que se hace clic en un botón.

Me han dicho que es mejor consolidar los controladores de eventos con la delegación de eventos donde pueda. También me dijeron que si puedo evitar consultar el DOM una y otra vez por el mismo elemento, es mejor hacerlo solo una vez y guardarlo para más adelante. Pero en este caso, parece que necesito hacer uno u otro, así que me pregunto cuál es más costoso. Actualmente tengo el siguiente código que se ejecuta una vez para configurar las cosas:

 buttons.forEach((button) => { const area = document.querySelector(`#${button.getAttribute('aria-controls')}`); button.addEventListener('click', (e) => { // do some things with "area" and "button" }); });

Obviamente, esto crea un oyente individual para cada botón, así que pensé que podría reescribirlo así:

 document.addEventListener('click', (e) => { if(e.target.classList.contains("button-class")) { const area = document.querySelector(`#${e.target.getAttribute('aria-controls')}`); // do some things with "area" and "button" } });

Pero, ¿vale la pena el intercambio de que ahora, cada vez que se hace clic en un botón, tengo que consultar nuevamente el elemento de "área" asociado? ¿Cambia la respuesta dependiendo de cuántos botones tengo o con qué frecuencia es probable que se haga clic en ellos? ¿Hay alguna tercera respuesta que sea más óptima que cualquiera de mis soluciones? Disculpas si esta es una pregunta realmente obvia y estúpida, pero he estado buscando en Google y mirando otras preguntas de Stack Overflow y realmente no puedo encontrar nada para responder esto.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

cual es mas costoso

Como ya habrás notado, es una compensación. Los costos que necesita comparar son respectivamente

  • el tiempo de ejecución necesario para la inicialización
  • el tiempo de ejecución de cada controlador de clics
  • la memoria necesaria para mantener el estado

Para unos pocos botones, en los que se hace clic en flujos web normales (y no, por ejemplo, en una herramienta de prueba de APM ), realmente no importa.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda