我有一个javascript函数,我设置了每30秒执行一次的间隔。这是我的代码:
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);
答案 0 :(得分:2)
您正在setTimeout(ping(), 5000);
上立即拨打电话。您将ping()
的结果设置为超时功能。如果你希望在超时时调用ping
,那么执行setTimeout(ping, 5000);
或将其包装在一个闭包中,就像你第二次一样。
答案 1 :(得分:2)
我猜你不会等到超时才宣告间隔功能。
有几种不同的方法可以做到,所以让我建议一下:
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);