Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

196
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!