javascript

javascript timer



''setInterval'' vs ''setTimeout'' (5)

Esta pregunta ya tiene una respuesta aquí:

¿Cuál es la principal diferencia entre

setInterval

y

setTimeout

en JavaScript?


setInterval ()

setInterval es un método de ejecución de código basado en intervalos de tiempo que tiene la capacidad nativa de ejecutar repetidamente el script especificado cuando se alcanza el intervalo. El autor del guión no debe anidarlo en su función de devolución de llamada para que se convierta en un bucle, ya que de forma predeterminada se repite. Seguirá disparándose en el intervalo a menos que llame a clearInterval ().

Si desea crear un bucle de código para animaciones o relojes, utilice setInterval.

function doStuff() { alert("run your code here when time interval is reached"); } var myTimer = setInterval(doStuff, 5000);

setTimeout ()

setTimeout es un método de ejecución de código basado en el tiempo que ejecutará el script solo una vez cuando se alcance el intervalo, y no se repetirá de nuevo a menos que lo adaptes para hacer un loop del script al anidar el objeto setTimeout dentro de la función que llama a ejecutar. Si está orientado a bucle, seguirá disparando en el intervalo a menos que llame a clearTimeout ().

function doStuff() { alert("run your code here when time interval is reached"); } var myTimer = setTimeout(doStuff, 5000);

si desea que algo suceda una vez después de unos segundos, utilice setTimeout ... porque solo se ejecuta una vez cuando se alcanza el intervalo.


setInterval dispara una y otra vez en intervalos , mientras que setTimeout solo se dispara una vez.

Ver referencia en MDN .


setInterval repite la llamada, setTimeout solo la ejecuta una vez.


setTimeout ():

Es una función que ejecuta una sentencia JavaScript AFTER intervalo x.

setTimeout(function () { something(); }, 1000); // Execute something() 1 second later.

setInterval ():

Es una función que ejecuta una sentencia de JavaScript EVERY x intervalo.

setInterval(function () { somethingElse(); }, 2000); // Execute somethingElse() every 2 seconds.

La unidad de intervalo está en millisecond para ambas funciones.


setTimeout(expression, timeout); ejecuta el código / función una vez después del tiempo de espera.

setInterval(expression, timeout); ejecuta el código / función en intervalos, con la duración del tiempo de espera entre ellos.

Ejemplo:

var intervalID = setInterval(alert, 1000); // Will alert every second. // clearInterval(intervalID); // Will clear the timer. setTimeout(alert, 1000); // Will alert once, after a second.