摘要:在线考试系统作为现代远程教育的一种教学效果考察手段,在现代远程教育中已发挥越来越重要的作用,避免了试卷印刷、考场安排、组织考试、阅卷等诸多程序,为提高考试效率和标准化水平,提供了一种新的考试形式,使考试突破了时空的限制。本文就在线考试系统中的考试时间在客户端与服务器端的双重控制进行了研究,提供了一种解决在线考试系统中考试时间控制的方法。
关键词:在线考试系统 时间控制 js session
一个成熟的在线考试系统应具有易操作、功能完备、故障率低等特点,一般的在线考试均采用b/s模式,使考试过程在客户端浏览器完成,考试结果则存储在服务器中。这种模式具有简化考生操作程序、及时回收和储存考试结果、系统易于扩充和修改等特点。每场考试都是有时间限制的,不允许考生超时答题,由于在线考试系统具有分布性和考试开始时间的差异性,为了体现考试的公平性,对考试用时,也就是考试时间进行精确控制就显得尤为重要。
一、在客户端控制考试时间
在客户端控制考生的考试时间是比较简单的,其原理是:当考试开始考试时立即按考试信息表中设置的考试用时进行倒计时,当考试时间用完,则系统自动将考生的答题数据传递到考试处理页,对考生的考试情况(答题的答案、考生的信息等)进行记录并自动进行评分。
由于倒计时工作必须在客户端完成,要实现这个功能,就必须选择客户端脚本进行控制,可以采用vbscript或javascript.。wwW.133229.COm
下面是以javascript为例在客户端进行考试时间控制的例子:
另外,要实现考试时间到自动交卷,还要进行两个操作,一是在网页body项中增加onload事件,当网页打开时即进行计时(也可设置为单击某个按钮开始计时):
二是在需要显示考试时间倒计时的地方显示倒计时,实现方法是将该位置所在的层(div)的id设置为timeinfo即可。
另外,点击交卷的按钮(submit)的名称必须设置为本例中的submit,设计者也可视情况进行程序修改。如:
二、在服务器端控制考试时间
仅仅在客户端设置考试时间限制是不够的,因为要考虑到,用户可以在客户端屏蔽js代码,或者伪造一个客户端页面进行超时数据提交,这时就要考虑使用服务器端同步进行时间控制。
下面以使用asp技术开发的在线考试系统为例介绍考试时间服务器端控制方法思路:
第一步:当用户打开考试界面或点击考试按钮进行考试时,即在该页面创建一个session,用于记录用户的开始考试时间。
session("aspexamstartsj")=now() ‘记录用户开始考试时间到session中。
session.timeout=150 ‘设置session超时时间为150分钟,此项可根据考试时间灵活设置。
第二步:当考生考试时间到或点击交卷按钮后,进行考试时间的判断,有两种方法,一是判断上一步设置的session是否存在,如果不存在则说明考试时间以过活用户是从非法途径提交的答题信息(伪造客户端),实现思路如下:
二是进行时间比对,若开始时间和结束时间差超过预定考试时间(以120分钟为例),则说明考试时间过期。要进行两个时间的时间差计算,在asp中就要用到datediff函数。
datediff(interval, date1, date2):返回 variant (long) 的值,表示两个指定日期间的时间间隔数目。
其中,interval参数表示返回值的类型,如m表示返回data2与data1之间相差的分钟数。
具体实现方法如下:
三、小结
上述两种方法分别从客户端和服务器端就如何解决考试时间限制提出了两种方案。第一种方法确保在考试时间结束的时候能够自动将用户的答题信息提交到服务器。第二种方法是确保在线考试系统客户端页面不够篡改。只有将两种方法结合运用,才能保证系统功能的良好实现与运行。
参考文献:
[1]asp动态网站开发教程 清华大学出版 陈建伟 李美军 施建强 等编著;