TEL:400-8793-956
当前位置:程序、服务器

防止倒数计时器重启

提问者: 近期获赞: 浏览人数: 发布时间:2021-01-03 15:37:47

 问:当您在浏览器中单击刷新时,如何防止倒数计时器重新启动

 
        <div id="quiz-time-left"> </div>
        <script type="text/javascript">
            var total_seconds = 60*10 ;
            var minutes = parseInt(total_seconds/60);
            var seconds = parseInt(total_seconds%60);
            function countDownTimer(){
                if(seconds < 10){
                    seconds= "0"+ seconds ;
                }if(minutes < 10){
                    minutes= "0"+ minutes ;
                }
                
            document.getElementById("quiz-time-left").innerHTML
                = "Time Left :"+minutes+"minutes"+seconds+"seconds";
                if(total_seconds <= 0){
                    setTimeout("document.quiz.submit()",1);
                }else{
                    total_seconds = total_seconds -1 ;
                    minutes = parseInt(total_seconds/60);
                    seconds = parseInt(total_seconds%60);
                    setTimeout("countDownTimer()",1000);
                }
            }
        setTimeout("countDownTimer()",1000);
    
            
 function finishpage(){
alert("unload event detected!");
document.quiz.submit();
}
window.onbeforeunload= function() {
setTimeout('document.quiz.submit()',1);
}
            
        </script>
 
 
答:根据您的代码,您正在使用total_seconds = 60 * 10进行初始化,并且在每次刷新后,total_seconds再次设置为恒定值。
您应该将最后一个计数器值存储在localStorage中,并使用更新后的localStorage值初始化total_seconds。
 
if(localStorage.getItem(“ total_seconds”)){
    var total_seconds = localStorage.getItem(“ total_seconds”);
}其他{
    var total_seconds = 60 * 10;
}
var minutes = parseInt(total_seconds / 60);
var seconds = parseInt(total_seconds%60);
函数countDownTimer(){
    if(秒<10){
        seconds =“ 0” +秒;
    } if(分钟<10){
        minutes =“ 0” +分钟;
    }
    document.getElementById(“ quiz-time-left”)。innerHTML =“剩余时间:” +分钟+“分钟” +秒+“秒”;
    if(total_seconds <= 0){
        setTimeout(“ document.quiz.submit()”,1);
    }其他{
        total_seconds = total_seconds -1;
        分钟= parseInt(total_seconds / 60);
        秒= parseInt(total_seconds%60);
        localStorage.setItem(“ total_seconds”,total_seconds)
        setTimeout(“ countDownTimer()”,1000);
    }
}
上一篇: 如何从多项选择题中选择正确答案?
下一篇: 如何实现网站表单的自动填充功能