我正在进行在线考试管理,我已将考试的时间设置为5分钟。
当学生参加此测试时,计时器开始减少。
我使用javascript制作了这个计时器。
如果学生从第一次开始刷新页面计时器,问题是什么。如果页面刷新,我怎样才能让时间变得静止。
答案 0 :(得分:3)
您无法避免重置计时器,因为当页面重新加载时,所有HTML和JS都会重新加载。 您可以将当前时间存储在“cookie”中。查找“在Javascript中使用Cookie”。
工作流程如下
答案 1 :(得分:3)
简而言之:Cookie或AJAX(PHP)
AJAX计时器。让一个php页面“记住”学生的时间,javascript将告诉php扣除“秒”或者从存储时间中扣除多长时间。
或者,尝试使用cookie。
1)检查cookie是否存在
2)如果没有将cookie设置为从开始时间起5分钟后到期。 如果是,请检查Cookie是否已过期。
3)如果cookie过期,请显示“Time up” 如果没有,继续等待。
问题是Javascript可以从浏览器的地址栏运行,因此在安全的测试环境中不是一个好的选择。
答案 2 :(得分:2)
javascript中唯一可以在页面或页面刷新之间保留的东西是cookie。
您可以定期将Cookie值设置为剩余时间并在页面加载时检查它,并在该值为0时启动计时器。
答案 3 :(得分:2)
在PHP中做这样的事情:
<script type="text/javascript">
var remainingtime = <?php echo $remainingtime; /* remaining seconds */ ?>;
</script>
然后从JavaScript中你可以读取这个变量的值。
编辑:当然,如果时间合适,你必须检查服务器端,因为JavaScript值可能是伪造的。
答案 4 :(得分:1)
使用ajax更新数据库,说明学生X已经开始考试,如果它刷新了页面,请读取该值并将其机会甩掉;)
答案 5 :(得分:1)
运行计时器服务器端并使用AJAX轮询它。