2011-06-20 8 views
5

Pregunta simple realmente, estoy ejecutando un montón de tiempos de espera pero quiero asegurarme de que no ralenticen la página y que por alguna razón no se guarden en la memoria después de que se hayan ejecutado.¿Tengo que borrar setTimeouts después de que se hayan ejecutado?

$projects.each(function(index) { 
    var $this = $(this); 
    window.setTimeout(function() { 
     // animate 
    }, 300 * index); 
}); 
// Clear timeouts? 

Supongo que se destruyen una vez que han corrido pero solo quieren seguir las mejores prácticas.

+0

Para borrar el tiempo de espera, primero debe mantener una referencia a la identificación de tiempo de espera. ;-) – RobG

+0

@RobG Sí, estoy consciente de eso. Iba a almacenarlos todos en una matriz, pero parece que es innecesario. – Marko

Respuesta

4

No, no es así. Temporizadores de intervalo (a través de "setInterval()"), sí, si desea que se detengan.

Es inofensivo eliminar un tiempo de espera que no tiene que borrarse. Es decir, si hace borra uno después de que se haya ejecutado, los navegadores no se quejarán.

+0

Gracias @Pointy muy apreciado. Estoy mostrando una lista de proyectos de uno en uno usando tiempos de espera, así que solo quería asegurarme de que tener 20 tiempos de espera corridos consecutivamente no ralentizaría la página. Pero por el sonido de las cosas, cada temporizador se ejecuta y luego se destruye. Gracias de nuevo. – Marko

Cuestiones relacionadas