Question Appeler une fonction javascript toutes les 5 secondes en continu [dupliquer]


Duplication possible:
Appeler une fonction toutes les 60 secondes 

appeler une fonction javascript toutes les 5 secondes en continu. J'ai vu l'événement setTimeOut. cela fonctionnera-t-il bien si je le veux continuellement?


64
2017-08-25 09:40


origine


Réponses:


Vous pouvez utiliser setInterval(), les arguments sont les mêmes.

setInterval(function() {
  // method to be executed;
}, 5000);

120
2017-08-25 09:42



Faire un "récursif" setTimeout de votre fonction, et il continuera à être exécuté chaque fois défini:

function yourFunction(){
    // do whatever you like here

    setTimeout(yourFunction, 5000);
}

yourFunction();

61
2017-08-25 09:42



Comme meilleures pratiques de codage suggère, utilise setTimeout au lieu de setInterval.

function foo() {

    // your function code here

    setTimeout(foo, 5000);
}

foo();

Veuillez noter que ceci n'est PAS une fonction récursive. La fonction ne s’appelle pas avant la fin, elle appelle un setTimeout fonction qui sera plus tard appeler à nouveau la même fonction.


19
2017-08-25 10:24



Pour répéter une action dans le futur, il y a la setInterval  fonction que vous pouvez utiliser au lieu de setTimeout.
Il a une signature similaire, donc la transition de l'un à l'autre est simple:

setInterval(function() {
    // do stuff
}, duration);

14
2017-08-25 09:42



Bon exemple de travail ici: http://jsfiddle.net/MrTest/t4NXD/62/

Plus:

  • a bien fade in / fade out animation
  • va faire une pause sur :hover
  • empêchera l'exécution de plusieurs actions (terminer l'animation avant de commencer la seconde)
  • empêchera d'aller cassé dans l'onglet (le navigateur arrête les scripts dans les onglets)

Testé et fonctionnel!


4
2017-08-25 10:12