javascript - 倒数计时器启动和停止
问题描述:
我创建了在线考试系统。javascript - 倒数计时器启动和停止
我的问题:我点击申请按钮比倒计时器开始和有时浏览器页面关闭后,我点击相同的考试名称,然后倒数计时器继续,不开始开始。下面的截图
查看:
<h2><p style="float: right" id="countdown"></p></h2>
<a href="<?php echo base_url(); ?>student/Examinations/apply_examinations/<?php echo $value['examination_test_id']; ?>" class="btn btn-primary" id="apply" onclick="resetCountdownInLocalStorage();">Apply</a>
<script>
$(document).ready(function() {
$examination_test_id = $("#examination_test_id").val();
$time_limit = $("#time_limit").val();
var d = new Date($time_limit);
var hours = d.getHours();
var minute = d.getMinutes();
var minutes = hours * 60 + minute;
var seconds = 60 * minutes;
if (typeof (Storage) !== "undefined") {
if (sessionStorage.seconds) {
seconds = sessionStorage.seconds;
}
}
function secondPassed() {
var hours = Math.floor(seconds/3600);
var minutes = Math.floor((seconds - (hours * 3600))/60);
// var remainingSeconds = seconds - (hours * 3600) - (minutes * 60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
if (minutes < 10) {
minutes = "0" + minutes;
}
if (typeof (Storage) !== "undefined") {
sessionStorage.setItem("seconds", seconds);
}
document.getElementById('countdown').innerHTML = hours + ":" + minutes + ":" + remainingSeconds;
if (seconds == 0) {
clearInterval(myVar);
document.getElementById('countdown').innerHTML = alert('Timeout');
window.location.href = base_url + "student/Examinations/check_answer/" + $examination_test_id;
if (typeof (Storage) !== "undefined") {
sessionStorage.removeItem("seconds");
}
} else {
seconds--;
}
}
var myVar = setInterval(secondPassed, 1000);
});
function resetCountdownInLocalStorage() {
sessionStorage.removeItem("seconds");
}
</script>
答
它可能会依赖于浏览器,根据该link
浏览的寿命上下文可能与实际用户代理进程本身的生存期无关,因为用户代理可能在重新启动后支持 恢复会话。
您可能必须清理选项卡上的会话stroage close我认为。
我目前的形式并不完全了解你的问题。但是当你关闭浏览器并重新打开它时,你的'状态'就会丢失。您正在有效地运行整个程序。如果您想在重新打开该页面后“继续”,则需要将该信息存储在某处 –
@DylanMeeus请编写代码 – kishan123
@DylanMeeus首先查看屏幕截图,然后单击应用按钮,然后定时器启动并在某个时间之后关闭浏览器页面几分钟我点击相同的考试名称申请然后倒数计时器开始继续,不开始求助 – kishan123