94 votes

JavaScript : faire en sorte que le code s'exécute toutes les minutes

Existe-t-il un moyen de faire en sorte qu'un code JS soit exécuté toutes les 60 secondes ? Je pense que c'est possible avec un fichier de type while boucle, mais y a-t-il une solution plus nette ? JQuery bienvenue, comme toujours.

167voto

NULL Points 10442

Utilisation de setInterval :

setInterval(function() {
    // your code goes here...
}, 60 * 1000); // 60 * 1000 milsec

La fonction renvoie un identifiant avec lequel vous pouvez effacer votre intervalle. clearInterval :

var timerID = setInterval(function() {
    // your code goes here...
}, 60 * 1000); 

clearInterval(timerID); // The setInterval it cleared and doesn't run anymore.

Une fonction "sœur" est setTimeout / clearTimeout Cherchez-les.


Si vous voulez exécuter une fonction à la page init, puis 60 secondes après, 120 secondes après, ... :

function fn60sec() {
    // runs every 60 sec and runs on init.
}
fn60sec();
setInterval(fn60sec, 60*1000);

13voto

CornéM Points 1541

Vous pourriez utiliser setInterval pour ça.

<script type="text/javascript">
function myFunction () {
    console.log('Executed!');
}

var interval = setInterval(function () { myFunction(); }, 60000);
</script>

Désactiver la minuterie en réglant clearInterval(interval) .

Voir ce violon : http://jsfiddle.net/p6NJt/2/

0voto

Weilory Points 1194

pour appeler une fonction exactement au début de chaque minute.

let date = new Date();
let sec = date.getSeconds();
setTimeout(()=>{
  setInterval(()=>{
    // do something
  }, 60 * 1000);
}, (60 - sec) * 1000);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X