我有一个返回整数的函数(社区网站上用户的当前信誉得分)。根据他们的评论和提交的投票方式,这个数字往往会上升或下降。我想每隔30秒左右“轮询”一次,看它是否有变化,如果是,请更新我正在显示的数字。
在另一个StackOverflow线程中,我发现这个看起来很有用的JavaScript代码段:
function listen() {
$.get("/mylongrequestfile", {}, function(data) {
$("#mydiv").html(data);
listen(); // then launch again
}));
};
我只是用我的函数替换/ mylongrequestfile吗?我正在尝试,但它没有那么好用。如何使用此代码或其他代码段每30秒抓取并显示此值?
答案 0 :(得分:5)
您可以使用
其中
重复调用函数,每次调用该函数之间都有固定的时间延迟。
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);