Visit Mozilla.org

DOM:window.setInterval

Un article de MDC.

« Référence du DOM Gecko

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);

  • intervalID est un ID unique d'intervalle qui peut être passé à clearInterval().
  • fonction est 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.
  • delai est le nombre de millisecondes (millièmes de seconde) que setInterval() doit attendre avant chaque appel de fonction.

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.