1

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

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

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

我只是用我的函数替换 /mylongrequestfile 吗?我正在尝试,但效果不佳。如何使用此代码或其他代码片段每 30 秒获取并显示此值?

4

2 回答 2

5

您可以使用

window.setInterval

哪一个

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

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

这在 300 毫秒的延迟内执行。

回调参数

setInterval() 会将回调被调用的延迟毫秒数传递给回调函数,如果它期望其他东西作为参数,这可能会使它感到困惑。要回避这个问题,请使用匿名函数来调用您的回调。

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

var intervalID = setInterval(function() { YourFunction(); }, 300);
于 2009-09-29T10:30:55.707 回答
0
var listener = function () {
$.get("http://www.domain.tld/script/", {}, function(data) {
    $("#mydiv").html(data);
}));
};

var interval = setInterval(listener, 30000);
于 2009-09-29T10:33:08.327 回答