我有一个每分钟运行一次的函数,但我希望该函数先运行,然后每分钟运行。如何做到这一点,我的功能如下:
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();