我如何让这个javascript每秒运行一次?

时间:2011-04-12 16:46:01

标签: javascript ajax

抱歉,我有点像菜鸟我只是想知道我是如何每秒运行这个javascript的?

源代码:

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

6 个答案:

答案 0 :(得分:64)

使用setInterval()每隔x毫秒运行一段代码。

您可以在名为runFunction的函数中每秒包装您想要运行的代码。

所以它会是:

var t=setInterval(runFunction,1000);

要停止它,你可以运行:

clearInterval(t);

答案 1 :(得分:6)

使用setInterval

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

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

setTimeoutsetInterval之间的区别为an article。两者都将提供您需要的功能,它们只需要不同的实现。

答案 2 :(得分:3)

您可以使用setTimeout运行一次函数/命令,或使用setInterval以指定的时间间隔运行函数/命令。

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);

答案 3 :(得分:0)

window.setTimeout(func,1000);

这将在1000毫秒后运行func。因此,在func结束时,您可以再次调用window.setTimeout进入1秒的循环。您只需要定义终止条件。

Reference

答案 4 :(得分:0)

您可以使用setInterval

var timer = setInterval( myFunction, 1000);

只需将您的函数声明为myFunction或其他名称,然后不要将其绑定到$('.more')的直播活动。

答案 5 :(得分:0)

使用setInterval(func, delay)func毫秒运行delay

setTimeout()delay毫秒后运行您的函数一次 - 它不会重复运行它。一个常见的策略是使用setTimeout运行代码并在代码末尾再次调用setTimeout。