说我有4个div:
<div id='blue'></div>
<div id='refresh12'></div>
<div id='red'></div>
<div id='refresh23'></div>
我将我的页面上以“刷新”开头的每个div放到这样的数组中:
var divs = $('div[id^="refresh"]');
现在,我想要做的是每隔5秒刷新一次数组中的div。我知道我需要使用SetInterval,但我不确定如何启动循环。此外,div不会从另一个页面提取内容,它来自同一页面,只需要每5秒刷新一次的动态数据。任何帮助表示赞赏。感谢。
答案 0 :(得分:2)
使用setInterval
是not always the best idea,因为如果您的操作需要很长时间且阻塞,则调用可能会叠加。
您可以使用setTimeout()
这样的电话来实现您的目标:
var divs = $('div[id^="refresh"]');
setTimeout(function refreshThem () {
//code to refresh your divs
divs.xy();
setTimeout(refreshThem, 5000);
}, 5000);
或者如果您希望第一次刷新一次运行:
(function refreshThem () {
//code to refresh your divs
divs.xy();
setTimeout(refreshThem, 5000);
})();
基本上,当刷新完成时,会设置一个新的超时,以便在5秒内再次运行相同的代码。
答案 1 :(得分:0)
尝试类似:
setInterval(function() {
$('div[id^="refresh"]').each(function(inx) {
// update each div here
});
},5000);
答案 2 :(得分:0)
$(function(){
var int=self.setInterval(RefreshDivs,5000);
});
function RefreshDivs(){
// do your code to update/ refresh the div content. May be ajax call..
}
答案 3 :(得分:0)
您需要做的事情就像
setInterval(function(){
$('div[id^="refresh"]').each(function(i,el){
$(el).load('pageURL ' + $(el).prop('id'));
})
}, 500)
或某人已经说过,setTimeout()