Skip to main content
 首页 » 编程设计

javascript之如何在 django 模板中创建计时器 javascript 组件

2025年05月04日24qq78292959

我正在尝试使用 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 插件它也会让您的生活更轻松。

希望对您有所帮助。