Javascript 延迟第一次函数调用n秒
我有一个javascript函数,我设置了一个间隔,每30秒执行一次。这是我的代码:Javascript 延迟第一次函数调用n秒,javascript,Javascript,我有一个javascript函数,我设置了一个间隔,每30秒执行一次。这是我的代码: function ping() { // code ... } ping(); // call function when page loads for first time // call function every 30 seconds window.setInterval(function(){ ping(); }, 30000); 我想做的是,当页面第一次加载时,将第一次调用延迟
function ping() {
// code ...
}
ping(); // call function when page loads for first time
// call function every 30 seconds
window.setInterval(function(){
ping();
}, 30000);
我想做的是,当页面第一次加载时,将第一次调用延迟5秒,然后函数应该每30秒执行一次
我尝试过setTimeout,但似乎不起作用,它会立即执行。你知道我做错了什么吗
setTimeout(ping(), 5000); // delay first call for 5 secs
// call function every 30 seconds
window.setInterval(function(){
ping();
}, 30000);
您在setTimeoutping 5000;上立即调用它;。您正在将ping的结果设置为超时函数。如果您希望在超时时调用ping,则执行setTimeoutping,5000;或者像第二次那样,将其封装在一个闭包中。您在setTimeoutping上立即调用它,5000;。您正在将ping的结果设置为超时函数。如果您希望在超时时调用ping,则执行setTimeoutping,5000;或者像第二次那样,将其封装在闭包中。我想您不会等到超时后才声明interval函数 有几种不同的方法可以做到这一点,所以让我建议一种:
function ping() {
// code ...
}
setTimeout(function () {
ping(); // call function when page loads for first time
// call function every 30 seconds
window.setInterval(function(){
ping();
}, 30000);
}, 5000);
我猜您不会等到超时后才声明interval函数 有几种不同的方法可以做到这一点,所以让我建议一种:
function ping() {
// code ...
}
setTimeout(function () {
ping(); // call function when page loads for first time
// call function every 30 seconds
window.setInterval(function(){
ping();
}, 30000);
}, 5000);
更改setTimeoutping,5000;设置时间输出,5000;。后跟函数名将立即调用它。如果删除对ping的调用中的,则此操作应有效。更改setTimeoutping,5000;设置时间输出,5000;。后跟函数名将立即调用它。如果在对ping的调用中删除了中的,则应该可以这样做。是的,这似乎按照预期工作。非常感谢。是的,这似乎和预期的一样。非常感谢。