DOM:window.setInterval
Un article de MDC.
Sommaire |
[modifier] Résumé
Appelle une fonction de manière répétée, avec un certain délai fixé entre chaque appel.
[modifier] Syntaxe
intervalID = window.setInterval(fonction, delai[, param1, param2, ...]) intervalID = window.setInterval(code, delai);
où
-
intervalIDest un ID unique d'intervalle qui peut être passé à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.
[modifier] 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.
<html>
<head>
<title>setInterval/clearInterval example</title>
<script type="text/javascript">
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>
[modifier] 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().
[modifier] 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.
[modifier] Spécification
DOM Level 0. Ne fait partie d'aucune spécification.