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

201
Views
¿Por qué se producen pérdidas de memoria al ejecutar un evento en JavaScript?

Tengo en mi html un botón con una identificación llamada "btn".

 <!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Index</title> </head> <body> <button id="btn">Click!!!</button> <script src="./script.js"></script> </body> </html>

La finalidad es que cada vez que se presione muestre u oculte una imagen,

Al click , se crea una imagen a partir de una plantilla, su contenido se extrae y se inserta en el DOM después de que el botón y la plantilla se establezcan en null , cuando se presiona el botón nuevamente, verifica si la imagen ya está en el dom, si lo es, lo elimina y la referencia lo establece en null , este es el script.js :

 const btn = document.getElementById('btn'); btn.addEventListener('click', () => { let img = document.getElementById('img'); if (!img) { let template = document.createElement('template'); template.innerHTML = '<img id="img" src="./img.jpg" alt="Image"/>'; btn.after(template.content); template = null; } else { img.remove(); img = null; } });

Cuando se dispara el evento, la memoria crece cada vez más, no debe aumentar, debe permanecer más o menos constante, ya que, ¿las referencias se eliminan una vez que finaliza el alcance de la función? ¿O no? ingrese la descripción de la imagen aquí

Después de esperar aproximadamente de 1 a 2 minutos, la memoria disminuye recientemente, pero aún no vuelve al valor inicial (es decir, aproximadamente 16,000 K, aunque la imagen no está en la memoria ni en el DOM):

ingrese la descripción de la imagen aquí

¿Qué está pasando? ¿Deberían eliminarse automáticamente las variables de un alcance cuando finaliza? ¿o no se eliminan en el momento exacto en que finalizó el alcance? ¿Estoy entendiendo algo mal? Espero que puedas ayudarme a entender :)

about 4 years ago · Juan Pablo Isaza
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!