Duplicate possible:
Appel d’une fonction toutes les 60 secondes
Appelez une fonction Javascript toutes les 5 secondes en continu. J'ai vu l'événement setTimeOut. Cela fonctionnera-t-il correctement si je le veux en permanence?
Vous pouvez utiliser setInterval()
, les arguments sont les mêmes.
> var interval = setInterval(function() {
> // method to be executed;
> }, 5000);
>
> // after some time
>
> clearInterval(interval); // thanks @Luca D'Amico
Faites un "récursif" setTimeout
de votre fonction, et elle continuera à être exécutée toutes les durées définies:
function yourFunction(){
// do whatever you like here
setTimeout(yourFunction, 5000);
}
yourFunction();
Comme meilleures pratiques de codage le suggère, utilisez setTimeout
au lieu de setInterval
.
function foo() {
// your function code here
setTimeout(foo, 5000);
}
foo();
S'il vous plaît noter que ce n'est pas une fonction récursive. La fonction ne s'appelle pas avant la fin, elle appelle une fonction setTimeout
qui sera appelée plus tard par la même fonction.
Pour répéter une action dans le futur, il existe la fonction intégrée setInterval
que vous pouvez utiliser à la place de setTimeout
.
Il a une signature similaire, la transition de l'un à l'autre est donc simple:
setInterval(function() {
// do stuff
}, duration);
Bon exemple de travail ici: http://jsfiddle.net/MrTest/t4NXD/62/
Plus:
fade in / fade out
animation:hover
Testé et fonctionnel!