离线SetInterval jquery时间增加

时间:2013-07-11 05:04:17

标签: jquery

我有一个场景,根据该场景,当用户用户在线时,然后每隔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方法检查互联网连接。

所以,如果你们能帮助我,请提前谢谢。

2 个答案:

答案 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