setInterval, setTimeout

setTimeout

setTimeout( fonction, temps) permet de déclencher une fonction (premier paramètre) après un certain temps (second paramètre, exprimé en millisecondes).

Premier exemple

La fonction rougeoie() met le texte du paragraphe d'identifiant "je_rougis" en rouge après un certain temps.

Relancer le chargement de la page pour constater le délai.

Exemple avec paramètre

Si l'on veut passer des paramètres à la fonction à exécuter, on peut les indiquer après le paramètre temps.

Exemple avec animation

Pour un effet d'animation, la fonction setTimeout est réutilisée à l'intérieur même de la fonction appelée. Notre fonction modifiant la couleur sera ainsi appelée à nouveau toutes les 2 secondes.

Stopper l'animation

On reprend l'animation précédente, mais on la stoppe après 10 secondes. On utilise pour cela un objet Date (vous trouverez facilement des détails sur le web pour utiliser Date dans d'autres contextes).

Sur le sujet, consultez également le rôle de la fonction clearTimeout, par exemple sur cette page.

On reprend ci-dessous l'animation précédente, mais on la stoppe après 4 changements de couleur par une autre méthode (sans décompte de temps).

setInterval

La fonction setInterval(fonction, temps) permet de relancer la fonction à intervalle de temps (en ms) régulier.

Premier exemple

On reprend l'exemple précédent (modification de la couleur du texte toutes les 2 secondes).

Stopper l'animation

Pour stopper une répétition obtenue avec setInterval, il faut avoir stocké en mémoire l'objet puis utiliser clearInterval.

Par exemple, en stoppant après un certain temps :

Ou en utilisant un compteur de changements :

Avec paramètres

Si l'on veut passer des paramètres à la fonction à exécuter, on peut les indiquer après le paramètre temps, comme pour la fonction setTimeout :
setInterval(fonction, temps, paramètre1, paramètre2,...).