不久前写的一个在线考试的实现方案1. 客户端(浏览器)用Cookie或隐藏域保存用户帐号,每次提交答卷时,附带帐号信息,避免Session超时
2. 试卷在客户端显示完毕后,在客户端计时,同时发送考试开始通知到服务器,服务器读取当前时间存入数据库,作为考试开始时间
3.客户端在时间快要到达时给用户提示
4.用户随时可以提交答卷;修改已经回答的问题:也就是说用户可以提交部分答案,不至于满盘皆输:)
5.提交试卷到服务器后,读取服务器当前时间和数据库中该用户的考试开始时间,如果没有超过答卷时间,保存考试结果(修改结果);如果超过了答卷时间,对不起,您最后提交的的考卷不能进行更新,你的有效答案是最后一次提交的结果
6.考虑到网络的延时,答卷时间比普通时间延长5分钟左右
7.对于某个填空题,如果提交的结果没有答案,而上一次提交有具体答案,则不对上次结果更新
8.考试结束10分钟前,可以自动弹出一份带有考生答案的试卷,由考生确认
总结:所有时间均使用服务器时间;允许用户任意时间提交和修改答案,但只有答卷时间内的提交才有效;最后答卷结果是答卷有效时间内的最后一次提交结果;

解决方案 »

  1.   

    1. 客户端(浏览器)用Cookie或隐藏域保存用户帐号,每次提交答卷时,附带帐号信息,避免Session超时
    2. 试卷在客户端显示完毕后,在客户端计时,同时发送考试开始通知到服务器,服务器读取当前时间存入数据库,作为考试开始时间
    3.客户端在时间快要到达时给用户提示
    4.用户随时可以提交答卷;修改已经回答的问题:也就是说用户可以提交部分答案,不至于满盘皆输:)
    5.提交试卷到服务器后,读取服务器当前时间和数据库中该用户的考试开始时间,如果没有超过答卷时间,保存考试结果(修改结果);如果超过了答卷时间,对不起,您最后提交的的考卷不能进行更新,你的有效答案是最后一次提交的结果
    6.考虑到网络的延时,答卷时间比普通时间延长5分钟左右
    7.对于某个填空题,如果提交的结果没有答案,而上一次提交有具体答案,则不对上次结果更新
    8.考试结束10分钟前,可以自动弹出一份带有考生答案的试卷,由考生确认
    总结:所有时间均使用服务器时间;允许用户任意时间提交和修改答案,但只有答卷时间内的提交才有效;最后答卷结果是答卷有效时间内的最后一次提交结果;