我正在尝试使用 django 创建在线考试。我使用倒计时 javascript 计时器来告诉时间何时结束。
但问题是:每次我移至下一个问题页面时,计时器都会重新启动。
有没有办法让页面刷新后时间继续?
这是我的模板代码(有定时器)
<form name="counter"><input type="text" size="8"
name="d2"></form>
<script>
<!--
//
var milisec=0;
var seconds={{time}};
document.counter.d2.value={{time}};
function display()
{
if (milisec<=0){
milisec=9
seconds-=1
}
if (seconds<=-1){
milisec=0
seconds+=1
}
else
milisec-=1
document.counter.d2.value=seconds+"."+milisec
setTimeout("display()",1000)
}
display()
-->
</script>
提前致谢
请您参考如下方法:
这是我做的。
你知道他们什么时候开始测试,你知道他们要花多长时间,所以当测试开始时,计算预期的结束时间,并将其存储在某个地方(数据库等)。将结束时间作为变量传递给模板,并在您的 javascript 中使用它来计算剩余时间。由于页面与页面之间的结束时间始终相同,因此您不必担心在表单之间传递值。
如果您在表单之间传递值或设置 cookie,那么您将很容易让某人破解测试以给自己更多时间。将该值存储在幕后而不在页面上更改它会使黑客更难破解。他们仍然可以破解 javascript 计时器,但这没关系,因为在提交每个问题后,您只需检查当前时间是否大于结束时间,如果是,那么您就知道时间已过,您可以结束测试。
如果你使用像 http://keith-wood.name/countdown.html 这样的 jquery 插件它也会让您的生活更轻松。
希望对您有所帮助。
