我正在尝试使用以下Javascript代码启动Javascript倒计时。这里是从5到0的数字。
现在我想当它为0时,我将调用一个Ajax请求(我知道该怎么做)。但是现在,我将其警报消息设置为您的会话已结束。
它不断向我显示警报消息,但是应该只有一次!
这是JS代码:
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10)
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if(timer !== 0 ) {
--timer;
} else if( timer == 0 ) {
alert('Your time has been completed.');
}
}, 1000);
}
window.onload = function () {
var seconds = 5,
display = document.querySelector('#time');
startTimer(seconds, display);
};
最佳答案
您需要将间隔分配给变量,以便随后可以清除最后一个alert
之后的间隔,以使其不再运行:
function startTimer(duration, display) {
let timer = duration;
const interval = setInterval(function() {
let minutes = parseInt(timer / 60, 10)
let seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (timer !== 0) {
--timer;
} else if (timer == 0) {
alert('Your time has been completed.');
clearInterval(interval);
}
}, 1000);
}
window.onload = function() {
var seconds = 5,
display = document.querySelector('#time');
startTimer(seconds, display);
};
<div id="time"></div>
关于javascript - Javascript开始倒计时,最后调用ajax,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49788185/