Después de llamar al setTimeout
, existe un problema de pérdida de memoria sin llamar al clearTimeout
?¿Existe un problema de pérdida de memoria si no se llama a clearTimout después de llamar a setTimeout
Gracias.
Después de llamar al setTimeout
, existe un problema de pérdida de memoria sin llamar al clearTimeout
?¿Existe un problema de pérdida de memoria si no se llama a clearTimout después de llamar a setTimeout
Gracias.
No. clearTimeout solo necesita ser llamado si desea detener la ejecución de un setTimeout pendiente. Después de que se produzca setTimeout, la identificación del temporizador ya no es válida, pero afortunadamente llamar a clearTimeout con una identificación inválida del temporizador es inofensivo.
Si ve que hay pérdidas de memoria, el problema está en otro lado.
hay momentos en que setTimeout puede causar pérdidas de memoria ... consulte el siguiente artículo: setTimeout memory leaks
ser advertidos de que IEX tiene una sutileza liberador de memoria, sin embargo; Creo que si hace referencia a una variable DOM en un cierre de Javascript, el mecanismo de recolección se confunde y no se arruina al final de la solicitud: con el tiempo se convierte en una pérdida de memoria. Creo que es porque las variables DOM y las variables JS internas son recolectadas por dos recopiladores diferentes, y no se comunican correctamente sobre lo que ya no se usa.
Creo que se puede solucionar este problema estableciendo la variable a null:
setTimeout(function(){
myFunction(parameter);
parameter = null
}, myTimeout);
Esto establece explícitamente la recolección de basura en movimiento.
¿Por qué lo preguntas? ¿Puedes elaborar? ¿Ha experimentado pérdidas de memoria cuando usa setTimeout? ¿A qué navegadores apunta? –