我试图setTimeout每10秒重复一次.我知道setTimeout默认只等待然后执行一次动作.我该如何重复这个过程?
setTimeout(function() {
setTimeout(function() {
console.log("10 seconds");
}, 10000);
}, 10000);
Run Code Online (Sandbox Code Playgroud) 我正在显示一个关于给定的终结时间的倒计时表.
虽然它的工作完美,但我想知道哪种方法最适用.
下面是我的倒计时功能.
var timerId;
var postData = {endDate : endDate, tz : tz};
var countdown = function()
{
$.ajax({
type : 'post',
async : false,
timeout : 1000,
url : './ajax_countdown.php',
data : $.param(postData),
dataType : 'json',
success : function (resp){
$('#currentTime').html(resp.remainingTime);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我想要的是每1秒后自动调用一个函数(倒计时),如果它在1秒内没有执行/完成,则取消当前的ajax并启动一个新的ajax调用.
现在我发现有4种工作方法
window.setInterval(countdown, 1000);
Run Code Online (Sandbox Code Playgroud)
setInterval(function() {countdown()}, 1000);
Run Code Online (Sandbox Code Playgroud)
var countdown = function() {
$.ajax({ //ajax code });
timerId = setTimeout(countdown, 5000); // …Run Code Online (Sandbox Code Playgroud)