52 votes

Comment faire en sorte que ce javascript s'exécute toutes les secondes ?

Comment faire en sorte que ce javascript s'exécute toutes les secondes ?

code source:

 <script type="text/javascript">
$(function() {
    //More Button
    $('.more').live("click",function()  {
        var ID = $(this).attr("id");
        if(ID) {
            $("#more"+ID).html('<img src="moreajax.gif" />');

            $.ajax({
                type: "POST",
                url: "ajax_more.php",
                data: "lastmsg="+ ID, 
                cache: false,
                success: function(html){
                    $("ol#updates").prepend(html);
                    $("#more"+ID).remove();
                }
            });
        } else {
            $(".morebox").html('no posts to display');
        }

        return false;

    });
});

</script>

94voto

Mike Lewis Points 29305

Utilisez setInterval() pour exécuter un morceau de code toutes les x millisecondes.

Vous pouvez envelopper le code que vous souhaitez exécuter chaque seconde dans une fonction appelée runFunction .

Ce serait donc :

 var t=setInterval(runFunction,1000);

Et pour l'arrêter, vous pouvez exécuter :

 clearInterval(t);

10voto

Town Points 9331

Utiliser setInterval :

 $(function(){
setInterval(oneSecondFunction, 1000);
});

function oneSecondFunction() {
// stuff you want to do every second
}

Voici un article sur la différence entre setTimeout et setInterval . Les deux fourniront les fonctionnalités dont vous avez besoin, ils nécessitent simplement des implémentations différentes.

6voto

Vismari Points 441

Vous pouvez utiliser setTimeout pour exécuter la fonction/commande une fois ou setInterval pour exécuter la fonction/commande à des intervalles spécifiés.

 var a = setTimeout("alert('run just one time')",500);
var b = setInterval("alert('run each 3 seconds')",3000);

//To abort the interval you can use this:
clearInterval(b);

1voto

Nitin Midha Points 1971
window.setTimeout(func,1000);

Cela exécutera func après 1000 millisecondes. Donc à la fin de func vous pouvez appeler à nouveau window.setTimeout pour aller dans une boucle de 1 sec. Il vous suffit de définir une condition d'arrêt.

Référence

1voto

Vous pouvez utiliser setInterval :

 var timer = setInterval( myFunction, 1000);

Déclarez simplement votre fonction comme myFunction ou un autre nom, puis ne la liez pas à l'événement en direct $('.more')

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