javascript刷新页面倒计时

时间:2015-10-16 01:06:26

标签: javascript jquery html

当倒计时为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秒内计数时刷新

1 个答案:

答案 0 :(得分:0)

我的猜测是刷新超时和检查间隔不同步?也许不是使用setTimeout进行刷新尝试,而是在剩下0秒时从检查间隔执行刷新。只需将其添加到startChecking函数的末尾:

if (secondsleft == 0){
    window.location.reload();
}

然后删除您设置为执行刷新的超时。

这里的工作示例: https://jsfiddle.net/k3jxku4s/1/