尝试使用JavaScript每3分钟调用一次函数

时间:2009-09-29 10:28:08

标签: php javascript ajax-polling

我有一个返回整数的函数(社区网站上用户的当前信誉得分)。根据他们的评论和提交的投票方式,这个数字往往会上升或下降。我想每隔30秒左右“轮询”一次,看它是否有变化,如果是,请更新我正在显示的数字。

在另一个StackOverflow线程中,我发现这个看起来很有用的JavaScript代码段:

function listen() {
  $.get("/mylongrequestfile", {}, function(data) {
     $("#mydiv").html(data);
     listen(); // then launch again
  }));
};

我只是用我的函数替换/ mylongrequestfile吗?我正在尝试,但它没有那么好用。如何使用此代码或其他代码段每30秒抓取并显示此值?

2 个答案:

答案 0 :(得分:5)

您可以使用

window.setInterval

其中

重复调用函数,每次调用该函数之间都有固定的时间延迟。

var intervalID = window.setInterval(yourfunctionname, 300);

这会以300毫秒的延迟执行。

回调参数

setInterval()会将回调函数调用后的毫秒数传递给回调函数,如果它希望将其他内容作为参数,则可能会混淆它。要回避这个问题,请使用匿名函数来调用您的回调。

如果您需要将参数传递给回调函数,可以使用相同的技术,但需要它在Internet Explorer中工作,Internet Explorer不支持使用setInterval()发送其他参数。

var intervalID = setInterval(function() { YourFunction(); }, 300);

答案 1 :(得分:0)

var listener = function () {
$.get("http://www.domain.tld/script/", {}, function(data) {
    $("#mydiv").html(data);
}));
};

var interval = setInterval(listener, 30000);