我有一个场景,根据该场景,当用户用户在线时,然后每隔3或4秒向服务器发送一个请求,但是当用户下线时问题就开始了我希望增加时间jquery的setinterval方法我已经为它编写了代码,但还没有成功: -
我的代码是这样的
var interval= function(){
if(hasInternets()){
var inter= 15000;
return inter;
}
else
{
var inter= 15000;
inter+= 15000;
return inter;
}
};
setInterval( function(){
if (hasInternets()) {
// here I am doing something
}
}, interval());
hasInternet方法检查互联网连接。
所以,如果你们能帮助我,请提前谢谢。
答案 0 :(得分:0)
由于JavaScript中的函数是对象,因此可以将inter
作为字段分配给将在函数调用之间存储的对象:
var interval = function(inter) {
if (!interval.inter) {
interval.inter = 15000;
}
if (hasInternets()) {
return interval.inter;
} else {
interval.inter += 15000;
return interval.inter;
}
};
setInterval(function() {
if (hasInternets()) {
// here I am doing something
}
}, interval());
答案 1 :(得分:0)
setInterval()
仅以您最初传递的间隔作为第二个参数调用一次。每次执行后不重新评估间隔。
要解决此问题,您可以使用setTimeout()
代替不同的时间间隔。
var interval= function() {
return hasInternets() ? 15000 : 30000;
};
function doStuff() {
if (hasInternets()) {
// ...
}
// recalculate interval and continue
setTimeout(doStuff, interval());
}
setTimeoue(doStuff, interval()); // start it off