2012-01-03 40 views
3

在一个在线考试系统中,我如何处理考试过去和剩余时间。
第一次,我设法解决这个问题,通过使用JavaScript来设置客户端计时器在考试网页的时刻,当学生进入考试页面并通过在该计时器的每个间隔中使用ajax通知服务器;所以我可以更新当前学生的考试时间。
一切看起来都不错,但是当一个好奇的学生在考试期间禁用浏览器中的JavaScript并在点击提交按钮之前重新启用它时,问题就会变得明显。因此计时器停止并且浏览器无法向服务器发送ajax请求。
处理这个问题的最好方法是什么?
在此先感谢。在asp.net中处理任务时间

回答

3
  • 确保页面不禁用JavaScript(例如,通过只发送一个骨架和填充经过后续Ajax请求的实际内容)呈现
  • 只要文件已被加载到发送一个Ajax请求启动一个服务器端的计时器作为客户端计时器
1

一个天真的办法是包括开始时间在你的网页的表单参数备份(和证明),然后计算基于持续时间在这个时候,但是这也受到好奇学生使用DOM编辑工具来改变这个值的影响。

您需要在应用程序中使用某种形式的持久性 - 可能是数据库。如果你坚持学生开始学习的时间,你可以在任何后续请求进来时使用这个值。

2

JavaScript可以在浏览器中被禁用,你不能做任何事情。

但是,您可以在某处(可能是数据库)记录纸张的开始时间,并在提交页面时(用户完成答复纸张后),获取问题纸张的持续时间回答。你知道提交论文需要多长时间。

给出一个宽限期,比如说+2分钟,如果所花费的时间多于分配的时间,则会显示一条消息,显示“再次尝试!下次!”。