现在要做一个基于b/s模式的考试系统,有问题若干如下
1.考试有时间限制,如何才能保证考生在有效考试时间内答题,答题时间到则自动提交答案,希望能在服务器端统一时间,当然有的是在客户端使用脚本来做定时器,但是问题2产生。
2.用户因为不可抗拒的原因,比如说死机,或者无意中关闭了浏览器,那么当他再次登陆的时候,如何来计算其剩余的答题时间。
3.在问题2中情况发生的时候,用户可能已经做好了一部分题目,如果不采取策略来保存用户的答题结果,那么能直接导致用户答题的失败,这里应当采取如何策略,希望不是通过提交整个页面来达到保存题目答案的效果
4.用户登陆的问题,一个帐户只能一个用户登陆,当然,在这里可以用Application对象来实现,可是如果问题2发生的时候,能及时的销毁Application对象吗,或者有其他策略以上问题,请各位高手解答,在下不胜感激

解决方案 »

  1.   

    问题4:单点登录
    利用Cache的功能,用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,一旦Session失效,Cache过期;具体内容参见孟子E章的Blog
    http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168
      

  2.   

    1:以服务器端那依据,登录时立刻记时,这里利用session记录登录者,时间也可利用一个参数记录,比如UserTime2:一但客户端死机、关闭IE等就立刻让上面的UserTime停止,并记录当前时间与相关试题内容3:如果不用时实记录,那只能是一面的提交了,提交事件你可以在关闭IE事件里进行,就是对关闭IE事件进行编程,比如引发一个操作4:楼上说的就是一种方法,别的你可以用session或是再用别的哟
      

  3.   

    这个做一般的asp.net程序没有什么区别!
      

  4.   

    1.2.3.用分步提交吧,如做完了第一大题提交一次,做完第二大题再提交一次....这样就算有内容没提交也只是少量的!(Web2.0还有不刷新提交的功能),对于答题时间问题,可以在服务端统一控制,如9:00开始,11:00结束,那么如果用户9:00登录,就还有2小时的答题时间,10:00登录,就只有一小时了!
    4.用户登陆的问题,用Session做比较好,上次看到一个这方面的帖子,处理得还是比较好的,找一下!