当倒计时为0时,如何让页面自动刷新?
例如,我想使用javascript每10秒刷新页面,当从10秒开始还剩5秒时,它必须显示在页面上并从5到0计数然后刷新页面
我试过这个
function startChecking() {
secondsleft -= 1e3;
if (secondsleft <= 3e4) {
document.getElementById("div_countdown").style.display = "";
document.getElementById("timercounter").innerHTML = Math.abs(secondsleft / 1e3) + " Seconds"
}
}
function startschedule() {
clearInterval(timeout);
clearInterval(interval);
timeout = setTimeout("window.location.href=window.location.href;", threshold);
secondsleft = threshold;
interval = setInterval(function() {
startChecking()
}, 1e3)
}
function resetTimer() {
startschedule();
document.getElementById("div_countdown").style.display = "none";
document.getElementById("timercounter").innerHTML = ""
}
var timeout, interval;
var threshold = 108e4;
var secondsleft = threshold;
startschedule();
window.onload = function() {
startschedule()
}
但它并不完美。它确实每18分钟刷新一次页面,当它在30秒后显示在屏幕上,但问题是,它会刷新页面并且倒计时甚至不会在0秒。它将在30秒内计数时刷新
答案 0 :(得分:0)
我的猜测是刷新超时和检查间隔不同步?也许不是使用setTimeout进行刷新尝试,而是在剩下0秒时从检查间隔执行刷新。只需将其添加到startChecking函数的末尾:
if (secondsleft == 0){
window.location.reload();
}
然后删除您设置为执行刷新的超时。
这里的工作示例: https://jsfiddle.net/k3jxku4s/1/