Question Quel est le moyen le plus simple d'appeler une fonction toutes les 5 secondes dans jQuery? [dupliquer]


Cette question a déjà une réponse ici:

JQuery, comment appeler une fonction toutes les 5 secondes.

Je cherche un moyen d'automatiser le changement d'images dans un diaporama.

Je préfère ne pas installer d'autres plugins tiers si possible.


430
2018-01-31 07:31


origine


Réponses:


window.setInterval(function(){
  /// call your function here
}, 5000);

765
2018-01-31 07:32



vous pouvez enregistrer un intervalle sur la page en utilisant setInterval, c'est-à-dire:

setInterval(function(){ 
    //code goes here that will be run every 5 seconds.    
}, 5000);

83
2018-01-31 07:33



Juste un petit conseil pour la première réponse. Si votre fonction est déjà définie, référencez la fonction mais ne l'appelez pas !!! Donc, ne mettez aucune parenthèse après le nom de la fonction. Juste comme:

my_function(){};
setInterval(my_function,10000);

34
2018-01-26 21:11



Les fonctions mentionnées ci-dessus s'exécutent peu importe si elle est terminée dans l'invocation précédente ou non, celle-ci s'exécute toutes les x secondes une fois l'exécution terminée

// IIFE
(function runForever(){
  // Do something here
  setTimeout(runForever, 5000)
})()

// Regular function with arguments
function someFunction(file, directory){
  // Do something here
  setTimeout(someFunction, 5000, file, directory)
  // YES, setTimeout passes any extra args to
  // function being called
}

26
2017-08-10 04:59



Un bon exemple où abonner un setInterval (), et utiliser un clearInterval () pour arrêter la boucle forever:

http://www.w3schools.com/jsref/met_win_clearinterval.asp

function myTimer() {
    console.log(' each 1 second...');
}

var myVar = setInterval(myTimer, 1000);

appelez cette ligne pour arrêter la boucle:

 clearInterval(myVar);

14
2018-04-11 11:15



Tous les deux setInterval et setTimeout peut travailler pour vous (comme @Doug Neiner et @John Boker ont écrit les deux pointent maintenant vers setInterval).
Voir ici pour plus d'explications sur les deux pour voir quelles suites vous le plus et comment arrêter chacun d'eux.


8
2018-01-31 07:38



vous pouvez utiliser window.setInterval et le temps doit être défini en millisecondes, dans le cas ci-dessous, la fonction appellera après chaque seconde (1000 millisecondes)

<script>
  var time = 3670;
window.setInterval(function(){

  // Time calculations for days, hours, minutes and seconds
    var h = Math.floor(time / 3600);
    var m = Math.floor(time % 3600 / 60);
    var s = Math.floor(time % 3600 % 60);

  // Display the result in the element with id="demo"
  document.getElementById("demo").innerHTML =  h + "h "
  + m + "m " + s + "s ";

  // If the count down is finished, write some text 
  if (time < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }

  time--;
}, 1000);


</script>

2
2018-01-12 12:48