'SetInterval' vs 'setTimeout'

Quelle est la principale différence entre

SetInterval

et

SetTimeout

En JavaScript?

setTimeout(expression, timeout); Exécute le code / fonction une fois après le délai d'attente.

setInterval(expression, timeout); Exécute le code / fonction en intervalles, avec la durée du délai d'attente entre eux.

Exemple:

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

setInterval déclenche encore et encore en intervalles , alors que setTimeout se déclenche une seule fois.

Voir la référence à MDN .

SetTimeout ():

C'est une fonction qui exécute une instruction JavaScript AFTER intervalle x.

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

SetInterval ():

C'est une fonction qui exécute une déclaration JavaScript EVERY X intervalle.

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

L'unité d'intervalle est en millisecond pour les deux fonctions.

setInterval répète l'appel, setTimeout ne l'exécute qu'une seule fois.

SetInterval ()

SetInterval est une méthode d'exécution de code basée sur l'intervalle de temps qui a la capacité native à exécuter à plusieurs reprises le script spécifié lorsque l'intervalle est atteint. Il ne devrait pas être imbriqué dans sa fonction de rappel par l'auteur du script pour le faire boucle, puisqu'il s'arrête par défaut. Il continuera de tirer à l'intervalle sauf si vous appelez clearInterval ().

Si vous souhaitez coder en boucle pour les animations ou les horloges. Ensuite, utilisez setInterval.

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

SetTimeout ()

SetTimeout est une méthode d'exécution de code basée sur le temps qui exécutera le script une seule fois lorsque l'intervalle est atteint et ne pas répéter à nouveau à moins que vous ne l'entraîniez pour boucler le script en imbriquant l'objet setTimeout à l'intérieur de la fonction qu'il appelle à exécuter. S'il est orienté vers la boucle, il continuera à tirer à l'intervalle sauf si vous appelez clearTimeout ().

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

Si vous voulez que quelque chose se produise une fois après quelques secondes, utilisez setTimeout … car il ne s'exécute qu'une seule fois lorsque l'intervalle est atteint.