Résumé
Appelle une fonction de manière répétée, avec un certain délai fixé entre chaque appel.
Syntaxe
intervalID = window.setInterval(fonction,delai[,param1,param2, ...]); intervalID = window.setInterval(code,delai);
où
intervalIDest un ID unique d'intervalle qui peut être passé àwindow.clearInterval()fonctionest la fonction qui doit être appelée de manière répétée.code, dans la syntaxe alternative, est une chaîne représentant le code à exécuter de manière répétée.delaiest le nombre de millisecondes (millièmes de seconde) quesetInterval()doit attendre avant chaque appel defonction.
Notez que le passage de paramètres supplémentaires à la fonction dans la première syntaxe ne fonctionne pas dans Internet Explorer.
Exemples
var intervalID = window.setInterval(animation, 500);
L'exemple qui suit continuera à appeler la fonction flashtext() toutes les secondes, jusqu'à ce que intervalID soit réinitialisé en cliquant sur le bouton Stop.
<!DOCTYPE html>
<html>
<head>
<title>setInterval/clearInterval example</title>
<script>
var intervalID;
function changeCouleur() {
intervalID = setInterval(flashText, 1000);
}
function flashText() {
var elem = document.getElementById("ma_boite");
if (elem.style.color == 'red') {
elem.style.color = 'blue';
} else {
elem.style.color = 'red';
}
}
function stopTextColor() {
clearInterval(intervalID);
}
</script>
</head>
<body onload="changeCouleur();">
<div id="ma_boite">
<p>Salut tout le monde</p>
</div>
<button onclick="stopTextColor();">Stop</button>
</body>
</html>
Notes
La fonction setInterval() est habituellement utilisée pour définir un délai pour les fonctions qui sont exécutées indéfiniment, comme les animations.
La répétition peut être arrêtée à l'aide de window.clearInterval().
Si vous désirez que votre fonction ne soit appelée qu'
une seule fois
après le délai spécifié, utilisez window.setTimeout().
Le problème de « this »
Lorsque vous passez une méthode à setInterval() (ou toute autre fonction, d'ailleurs), elle sera invoquée avec une mauvaise valeur pour this. Ce problème est expliqué en détail dans la référence JavaScript.
Spécification
DOM Level 0. Ne fait partie d'aucune spécification.