sql和asp.net开发网络考试系统的关于cookie和session的问题
我想作一个网上考试系统,这有一个问题,我找答案找了好久啊
考生在考试时如果出现死机或其他原因造成机子重起那么考生在电脑启动后再次进入考试那么怎么再从重起前的状态开始答题,如果不能做到这点考试对学生相当不安全!!
我的小小思路是这样的在考试页面设个时间比如是每10分钟自动提交服务器但是这样与服务器频繁的提交,服务器的压力会很大的 呵呵!
在网上有前辈给我指导了一下说Web 应用是无连接的,不能主动判断客户端状态。你可以把试题分成很多页,比如每题一页。在服务器端用临时表或临时xml文件记录用户已提交的页面,用 Session 或 Cookies 记录当前页位置,最后结束答题时才写入数据库
这样在重新连接时丢失的只是不正常中断时当前页的一点内容,是可以接受的 我觉得次方法可行
但我才素学浅对于cookie的用法了解不多查阅了相关的资料里面介绍的内容甚少有没有好的望站有一些关于cookie的教程或是这样的事列可以给我介绍一下 ,要是有这样的例子就更好了
如果你有更好的思路就更更好了
谢谢大家了
参考答案:我们上次开发远程教育平台解决方案的时候也遇到这样的问题。
实际上我本人十分不赞同这种做法。也许考生会为了什么原因故意造成计算机断电
我们当时的解决思路是如果发生意外的话需要服务器另外给该考生生成一套新的试题(试卷完全随机),并且考试时间清零从新计算,考试的整体时间限制为3天内(远程教育客户端的不确定性)
如果按找你的思路,解决办法也是有很多的。我们的项目生成的试卷为一个页面。可以在本地保存这个页面的状态,也可以AJAX提交答过的试题,也可以本地答题过程时即时写入XML。Session如果遇到突发状况实际是不可行的,每一个连接都要触发一个新的session。COOKIES可以。
至于你考虑的服务器压力的问题,其实真正的瓶颈是数据网路传输的过程,我们在实际过程中遇到过更大的服务器压力,但是为了保证数据的完整性就只能加服务器。毕竟相对于软件和编程人员来说,硬件值几个钱。