web-dev-qa-db-fra.com

Comment puis-je obtenir ce javascript pour s'exécuter chaque seconde?

Désolé, je suis un peu un noob. Je veux juste savoir comment j'obtiens ce javascript pour qu'il s'exécute chaque seconde? 

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>
31
user663049

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

Vous pouvez envelopper le code que vous voulez exécuter toutes les secondes dans une fonction appelée runFunction.

Donc ce serait:

var t=setInterval(runFunction,1000);

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

clearInterval(t);
61
Mike Lewis

Utilisez 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.

6
Town

Vous pouvez utiliser setTimeout pour exécuter une fois la fonction/commande 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);
2
Vismari
window.setTimeout(func,1000);

Cela fonctionnera après 1000 millisecondes. Donc, à la fin de la fonction, vous pouvez à nouveau appeler window.setTimeout pour qu'il effectue une boucle de 1 seconde. Il vous suffit de définir une condition de fin.

Référence

0
Nitin Midha

Vous pouvez utiliser setInterval:

var timer = setInterval( myFunction, 1000);

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

0

Utilisez setInterval (func, delay) pour exécuter func toutes les delay millisecondes.

setTimeout() exécute votre fonction une fois après delay millisecondes - elle ne l'exécute pas à plusieurs reprises. Une stratégie courante consiste à exécuter votre code avec setTimeout et à appeler setTimeout à la fin de votre code.

0
Stephen P