区间函数



我有一个每分钟运行一次的函数,但我希望该函数先运行,然后每分钟运行。如何做到这一点,我的功能如下:

JS-

setInterval(function() {
    $.ajax({
          //some code
    });
}, 1000 * 60 * 1); 

创建命名函数的另一种选择是创建一个函数,该函数运行一次,然后安排执行:

function runAndSetInterval(func, millis) {
  func();
  setInterval(func, millis);
}
...
runAndSetInterval(function() {
  $.ajax({
    // some code
  });
}, 1000 * 60 * 1); 

使用命名函数,或将函数存储在变量中。我会这样做:

function doSomethingWithAjax() {
    $.ajax(...);
}
doSomethingWithAjax();
setInterval(doSomethingWithAjax, 1000 * 60 * 1); 

您可以将函数存储在变量中,将其传递给setInterval,然后调用它

var intervalFunction = function(){
    $.ajax({
          //some code
    });
};
setInterval(intervalFunction, 1000 * 60 * 1); 
intervalFunction();

更好的方法可能是:

var callServer = function(){
    $.ajax({
        url: 'url'
    }).done(function(data){
        //do something with data
        setTimeout(callServer, 1000);
    });
}

我会尝试递归调用该函数,因此60秒计时器只有在ajax完成后才会启动。

function functionName(){
    $.ajax({
        //do something
    }).done(function(){
        setTimeout(functionName, 60*1000)
    });
}

然后,您只需要在脚本开始时调用此函数一次。

functionName();

最新更新