276 votes

Jquery fonction de répétition de toutes les 60 secondes

À l'aide de setTimeout() il est possible de lancer une fonction à l'heure spécifiée, par exemple:

setTimeout(function, 60000);

Mais que faire si je voudrais lancer la fonction plusieurs fois? Chaque fois qu'un intervalle de temps passe, je voudrais exécuter la fonction (toutes les 60 secondes, disons).

406voto

jAndy Points 93076

Si vous n'avez pas de soins si le code à l'intérieur de l' timer peut prendre plus de temps que votre intervalle, utilisez setInterval():

setInterval(function, delay)

Que les feux de la fonction passée comme premier paramètre.

Une meilleure approche est d'utiliser setTimeout avec un self-executing anonymous fonction de:

(function(){
    // do some stuff
    setTimeout(arguments.callee, 60000);
})();

qui garantit, que le prochain appel n'est effectué avant votre code a été exécuté. J'ai utilisé arguments.callee dans cet exemple que la fonction de référence. C'est une meilleure façon de donner un nom à la fonction et l'appeler dans setTimeout car arguments.callee est obsolète dans ecmascript 5.

72voto

BlueBird Points 2168

l'utilisation de la

setInterval(function, 60000);

EDIT : (Dans le cas où si vous voulez arrêter l'horloge après il est démarré)

Section Script

<script>
var int=self.setInterval(function, 60000);
</script>

et le Code HTML

<!-- Stop Button -->
<a href="#" onclick="window.clearInterval(int);return false;">Stop</a>

8voto

Jamiec Points 35773
setInterval(fn,time)

est la méthode que vous êtes après.

6voto

0voto

maudulus Points 274

Nice. Cependant, vous pourriez avoir besoin de mettre une limite sur le nombre de fois que cela s'appelle, pour quelque raison que ce soit.

count = 0;
function timerFunction(){
    if (count >= 10){
        //run your function here...
        setTimeout(yourFunction, 8000);
    }
    count += 1
}
timerFunction();

Cela met un 8 seconde (8000) de la minuterie, et va l'exécuter 10 fois...if ( count >= 10)

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