1

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

JS

setInterval(function() {
    $.ajax({
          //some code
    });

}, 1000 * 60 * 1); 
4

5 回答 5

1

创建命名函数的另一种方法是创建一个函数,该函数运行您的函数一次,然后安排它执行:

function runAndSetInterval(func, millis) {
  func();
  setInterval(func, millis);
}

...

runAndSetInterval(function() {
  $.ajax({
    // some code
  });
}, 1000 * 60 * 1); 
于 2013-07-21T13:02:44.987 回答
0

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

var intervalFunction = function(){
    $.ajax({
          //some code
    });
};

setInterval(intervalFunction, 1000 * 60 * 1); 
intervalFunction();
于 2013-07-21T12:52:44.043 回答
0

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

function doSomethingWithAjax() {
    $.ajax(...);
}

doSomethingWithAjax();
setInterval(doSomethingWithAjax, 1000 * 60 * 1); 
于 2013-07-21T12:53:09.910 回答
0

更好的方法可能是:

var callServer = function(){
    $.ajax({
        url: 'url'
    }).done(function(data){
        //do something with data
        setTimeout(callServer, 1000);
    });
}
于 2013-07-21T13:00:08.270 回答
0

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

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

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

functionName();
于 2013-07-21T13:01:24.127 回答