Javascript 每5次调用后执行间隔回调
我在页面上每隔6秒运行一次间隔;它很好地填充了一堆数据 但是,有一段数据仅每30秒从数据库更新一次。所以,我想等待执行这个回调,因为如果它事先执行,它会清除所有内容 下面的代码等待30秒,然后进行检查。我想要的是相反的:立即检查,然后等待30秒再检查 我觉得我的代码是下面的cloogy,有一个更优雅的解决方案(尽管我不认为do/while循环符合要求)。我错了吗Javascript 每5次调用后执行间隔回调,javascript,Javascript,我在页面上每隔6秒运行一次间隔;它很好地填充了一堆数据 但是,有一段数据仅每30秒从数据库更新一次。所以,我想等待执行这个回调,因为如果它事先执行,它会清除所有内容 下面的代码等待30秒,然后进行检查。我想要的是相反的:立即检查,然后等待30秒再检查 我觉得我的代码是下面的cloogy,有一个更优雅的解决方案(尽管我不认为do/while循环符合要求)。我错了吗 counter = 0; maxCounts = 5; function callbackForInterval(){ if
counter = 0;
maxCounts = 5;
function callbackForInterval(){
if(counter === maxCounts){
if({data hasn't changed}){
// wipe everything out!!!
}else{
// do some other stuff
}
counter = 0;
}
counter++;
}
谢谢你的帮助 您可以使用余数运算符(
%
)
这将在第一次迭代时运行代码。要仅从第5个开始运行,请将后增量更改为预增量
现场示例:
var计数器=0;
函数callbackForInterval(){
如果(计数器+++%5==0){
log(“大刻度”);
//此位仅每5次迭代运行一次
}否则{
log(“小记号”);
}
}
var timer=setInterval(callbackForInterval,500);
setTimeout(函数(){
log(“完成”);
清除间隔(计时器);
}, 30000);
log(“(30秒后停止)”代码>
var counter = 0;
function callbackForInterval)( {
if (counter++ % 5 === 0) {
// This bit only runs every 5 iterations
}
}