1

毎分実行する関数がありますが、関数を最初に実行してから毎分実行する必要があります。これを行うにはどうすればよいですか、私の機能は以下のとおりです。

JS

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

}, 1000 * 60 * 1); 
4

5 に答える 5

1

名前付き関数を作成する代わりに、関数を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

より良いアプローチは次のとおりです。

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)
    });
}

次に、スクリプトの開始時にこの関数を 1 回だけ呼び出す必要があります。

functionName();
于 2013-07-21T13:01:24.127 に答える