我正在制作一个测验计时器,其中包含分钟和秒钟的计时器,我的问题是当我按下刷新计时器重新启动到其原始时间。当我单击刷新按钮或关闭浏览器时,如何才能重置计时器?我有点混淆在开始时获得时间+(5分钟,测验的采样时间)然后存储到数据库然后回显它使它成为计时器
<font size="6">
<div style="font-weight: bold" id="quiz-time-left"></div>
<script type="text/javascript">
var max_time = <?php echo $rows['q_time'] ?>*60;
var c_seconds = 0;
var total_seconds =max_time;
max_time = parseInt(total_seconds/60);
c_seconds = parseInt(total_seconds%60);
document.getElementById("quiz-time-left").innerHTML='Time Left: ' + max_time + ' minutes ' + c_seconds + ' seconds';
function init(){
document.getElementById("quiz-time-left").innerHTML='Time Left: ' + max_time + ' minutes ' + c_seconds + ' seconds';
setTimeout("CheckTime()",999);
}
function CheckTime(){
document.getElementById("quiz-time-left").innerHTML='Time Left: ' + max_time + ' minutes ' + c_seconds + ' seconds' ;
if(total_seconds <=0){
setTimeout('document.getElementById("quiz").submit()',1);
} else
{
total_seconds = total_seconds -1;
max_time = parseInt(total_seconds/60);
c_seconds = parseInt(total_seconds%60);
setTimeout("CheckTime()",999);
}
}
init();
</script>
</font>
答案 0 :(得分:0)
对于您要实现的目标,您可以将计时器的起点存储在localStorage
或浏览器的if (window.localStorage["start_time"]){
// continue from start time.
//reset your timer to the time passed since start_time
}else{
//first time load. reset your timer to 0.
}
中。
stdClass Object (
[0] => Array ( [id] => 5353 [month] => 05 )
[1] => Array ( [id] => 5542 [month] => 06 )
[2] => Array ( [id] => 4676 [month] => 06 )
[3] => Array ( [id] => 5542 [month] => 07 )
[4] => Array ( [id] => 5542 [month] => 09 )
)
请注意,window.localStorage不能使用旧浏览器,并且您可能需要执行与Cookie类似的操作。
答案 1 :(得分:-1)
我的意见是
将开始时间存储在数据库中(例如,mysql)。
或者在重新加载或刷新时将开始时间存储在用户会话中。只需将时间拉出会话并继续计算。
使用Cookie。但我推荐使用mysql或session,cookie可以简单地进行操作。