基于AJAX的网络考试系统研究

2022-09-12

1 问题的提出

随着技术的进步和教育信息化的发展, 网络在线考试逐渐在许多领域被广泛的应用。在传统的使用动态HTML技术开发的网络考试系统中, 即使是一次很小的交互, 都需要服务器向客户端返回一个完整的HTML页面, 当参加考试人员较多, 要传送的数据量大或网络速度较慢时, 容易出现“白屏”现象。在考试中出现页面频繁刷新, 考生需要等待页面回送后才能做下一道题。考试剩余时间的显示一般由客户端脚本处理, 影响计时的准确性。AJAX技术的出现与应用, 为上述问题的解决提供的很好的解决方案, 本文将对AJAX在网络考试系统中的应用进行探讨。

2 AJAX技术及原理

Ajax全称为Asynchronous JavaScript and XML, 即异步JavaScript与XML技术。它是由JavaScript、XHTML、W3CDOM、XML、XMLHttpRequest复合而成的异步通信技术, 核心是JavaScript和XMLHttpRequest。XHTML和CSS标准化呈现, W3CDOM负责解析来自服务器端的XML响应信息和动态显示信息, XMLHttpRequest负责发送异步请求和接收异步响应消息, JavaScript负责在浏览器端实现程序逻辑[1]。

3 A J A X在网络考试系统中的应用

3.1 A J A X用于网络在线考试常用来解决下面三个问题:

(1) 在考试过程中试题的呈现。

(2) 考试过程中答案的定时保存。能将答案实时传送到服务器端进行保存, 避免考试中由于用户计算机出现故障而造成答案丢失。

(3) 考试时间的准确控制。考试剩余时间由服务器端进行控制, 在客户端动态地显示和变化。

3.2 实现方法

AJAX涉及的技术较多, 完全手工构建AJAX风格的Web应用程序比较困难。微软发布的ASP.NETAJAX为开发者提供了一个服务器端A J A X开发平台, 它把JavaScript脚本库和基于服务器的ASP.NET 2.0结合在一起, 利用Visual Studio2005提供设计的开发环境、调试和管理等特性, 极大降低了向ASP.NET2.0应用程序中添加AJAX功能的难度[3]。

ASP.NET AJAX 1.0中最重要的是ASP.NET 2.0 AJAX Extensions1.0和ASP.NET AJAX Control Toolkit, 前者是ASP.NET AJAX的核心部分, 主要包括核心AJAX类型系统、异步通信层、组件模型、基类扩展以及与ASP.NET集成的服务器端功能, 最常用的控件有ScriptManager、UpdatePanel和Timer, 这些控件被集成在开发环境工具Visual StuDio中, 使用方式和其它标准ASP.NET服务器控件相同。后者是基于前者开发的一个控件工具包, 为开发者提供了30多个免费开源的AJAX风格的控件[4]。

3.3 试题的呈现

UpdatePanel控件可以把页面的一部分包围起来, 使这部分页面能够以异步的方式更新, 而无须刷新整个页面。所以可以用UpdatePanel控件来处理试题的呈现问题。具体实现方法如下:

(1) 需要显示的信息采用GridView内嵌Literal控件进行显示。

(2) 在页面中放入ScriptManager控件以支持页面局部更新。

(3) 把显示信息的GridView控件放置在UpdatePanel控件的ContentTemplate标签内以实现局部更新。UpdatePanel的工作依赖于ScriptManager服务器控件和客户端Page Request Manager类, 当Enable Partial Rendering属性值为True时, 它会以异步方式把请求回传给服务器, 在服务器端返回HTML代码之后, PageRequestManager会通过操作DOM对象来替换需要更新的代码片断。

3.4 答案的保存和考试时间的控制

Timer控件可以实现UpdatePanel控件中内容的定时更新, 它的Interval属性设定时间间隔值, OnTick事件属性指定定时触发的处理函数。答案定时保存和考试时间的控制功能的实现都需要使用Timer控件, 但它们是有区别的:一是时间间隔不同。考试时间控制的刷新时间通常以秒计算, 而定时保存时间可以长一些。所以在系统中需要采用2个Timer控件, 分别实现考试时间的刷新和答案的保存。二是表现方式不同。定时保存答案表现在数据库数据的变化上, 对于用户操作是透明的, 不需添加UpdatePanel控件。剩余考试时间需要在页面上显示出来, 需要添加一个UpdatePanel控件以实现局部页面的定时更新。

具体可使用下面的方法:

3.4.1 自定义控件

首先在系统中自定义一个用户控件SaveAnswer, 实现把考生的答案实时存入服务器中。

3.4.2 把抽取的试题绑定到Repeater控件中进行显示

在考生做题时, 根据触发事件, 随时调用在AjaxHelper.js脚本文件中定义的Update函数, 将当前题号和答案作为参数一起传递给后台的SaveAnswer模块, 实现将答案及时存入服务器中的功能。

3.4.3 设置字段

在服务器数据库的考生表中设置“答卷时间”字段, 用于记录考生的剩余考试时间。设置该字段值在考试过程中更新的频率, 并将值在设定时间内回显给考生, 当该字段值为零时, 系统自动交卷并结束考试。

4 结语

通过应用AJAX技术, 可以实现页面的局部刷新, 服务器与浏览器之间交换的数据量大大减少, 减轻了服务器的负担, 提高了交互效率和考试系统的安全性, 使网络在线考试系统更加完善和成熟, 有助于网络在线考试的大规模应用。

摘要:网络考试正逐渐被广泛应用, 但传统的基于Web的网络考试系统在可靠性、数据保存、反应速度等方面存在着一些问题, 本文介绍了AJAX技术的原理以及使用AJAX技术改进网络考试系统的方法。

关键词:网络考试,AJAX,局部刷新,在线考试

参考文献

[1] 薛胜军, 倪俊.基于Ajax的Web应用交互方式的研究[J].电脑知识与技术, 2006 (9) :390~392.

[2] 杨华.AJAX及在ASP.NET中的实现[J].现代电子技术, 2006 (12) :79~82.

[3] Laurence Moroney.Atlas基础教程:ASP.NET Ajax快速开发[M].北京:人民邮电出版社, 2006.

[4] ASP.NET AJAX[EB/OL]. (2007-01-23) [2007-05-05]http://ajax.asp.net.

上一篇:建筑装饰工程项目组价与投标报价策略下一篇:探讨“爱马仕”文化创意研究及其应用