毎分実行する関数がありますが、関数を最初に実行してから毎分実行する必要があります。これを行うにはどうすればよいですか、私の機能は以下のとおりです。
JS
setInterval(function() {
$.ajax({
//some code
});
}, 1000 * 60 * 1);
毎分実行する関数がありますが、関数を最初に実行してから毎分実行する必要があります。これを行うにはどうすればよいですか、私の機能は以下のとおりです。
JS
setInterval(function() {
$.ajax({
//some code
});
}, 1000 * 60 * 1);
名前付き関数を作成する代わりに、関数を1 回実行してから実行をスケジュールする関数を作成することもできます。
function runAndSetInterval(func, millis) {
func();
setInterval(func, millis);
}
...
runAndSetInterval(function() {
$.ajax({
// some code
});
}, 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)
});
}
次に、スクリプトの開始時にこの関数を 1 回だけ呼び出す必要があります。
functionName();