论文网首页|会计论文|管理论文|计算机论文|医药学|经济学论文|法学论文|社会学论文|文学论文|教育论文|理学论文|工学论文|艺术论文|哲学论文|文化论文|外语论文|论文格式
中国论文网

用户注册

设为首页

您现在的位置: 中国论文网 >> 计算机论文 >> 计算机应用论文 >> 正文 会员中心
 计算机应用论文   计算机理论论文   计算机网络论文   电子商务论文   软件工程论文   操作系统论文   通信技术论文
基于AJAX技术提升Web考试系统性能的研究

  摘要:网络考试系统是我国教育远程化的重要组成部分,然而现有的网上考试系统模式众多,各有千秋。文章重点研究利用ajax技术提升web考试系统性能。改进后,web考试系统具有c/s结构的优点,并克服了c/s和b/s结构的缺点,提高了系统的实用性。

  关键词:ajax;在线考试系统;b/s系统;c/s系统
  
  一、引言
  
  ajax是asynchronous javascript and xml(以及dhtml等)的缩写。它由几种技术组合而成,包括:基于xhtml和css标准的表示;使用document object model进行动态显示和交互;使用xml http request与服务器进行异步通信;使用javascript进行绑定。
  传统的web应用程序强制用户进入提交、等待、重新显示的模式,即用户的界面操作触发http请求,服务器在接收到请求之后进行业务逻辑处理,比如保存数据,然后向客户端返回一个html页面。但服务器处理数据的时候,用户处于等待的状态,每一步操作都需要等待,使得web用户界面在响应灵敏性方面大打折扣。而ajax带给用户完全不同的浏览感受。传统的动态网页技术被隐藏到ajax的后台。用户所看到的只是一个静态页面,不需要在提交页面后等待或者主动刷新网页。动态程序反馈的结果被直接无刷新地显示在这个页面上。因此利用ajax开发的web应用程序能够提供响应极其灵敏的web用户界面,使得应用过程很自然,操作很流畅,并消除了页面刷新所带来的闪烁。Www.11665.Com
  
  二、系统的设计与实现
  
  (一)系统设计
  在用户登录进考试系统时,将登录时间按用户id存入session变量中,以便对每个用户实现计时。
  用户登录后,利用ajax技术在后台实现计时功能,由javascript定时向服务器查询考试时间并实时显示在用户的web页面上。考试时间可在jsp的配置文件中给出,计时器到规定时间后如用户还未提交试卷,则由系统自动提交。
  用户考试过程中,利用ajax技术由javascr-ipt代码在后台为用户定时存盘,一旦系统出现故障,再次进入考试系统时,可根据保存的信息在故障点处继续进行考试,原来考试的信息可以从服务器端一次性加载。
  试卷的形式可以采用一页一题的方式,也可采用一页多题的方式。用户在答题时,系统在后台为用户预先从服务器端读取下一段的试题,当用户需要下一段试题时,可以很快从客户端直接加载,而不需要用户等待服务器端的数据,实现无闪烁、无延迟的效果。
  ajax采用的是一种沙箱安全模型,ajax代码(具体而言即xml http request对象)只能对所在的同一个域发送请求,在本地机器上运行的代码只能对本地机器上的服务器端脚本发送请求。虽然上述功能的实现都是基于客户端脚本,对于用户来说是可见的,但是ajax的沙箱安全模型保证了只有来自考试服务器端的客户端脚本才可以与服务器通信,同时服务器端也只接受有访问信息的客户端的请求(通过session等技术)。所以该改进方案保证了考试系统的准确性。
  (二)系统的实现
  1、xml http request对象。目前主流浏览器均支持xml http request对象,但不同的浏览器对该对象的声明各不相同,为了使得系统具有通用性,要对不同情况加以区分。本文将该功能直接写在xml http.js文件中,具体实现请参考文献。xml http request对象的各种方法和属性请参考msxml5.0sdk或其他相关文档。
  2、时间控制系统的实现。首先在服务器数据库的考生表中设置“答卷时间”字段,用于记录考生剩余考试时间。该字段值在考试过程中会以每分钟减一的频率被改写,并在半分钟之内回显给考生,当该字段值减为零或以下时系统自动交卷,结束考试。在计时器的设计上,以.net系统自带的timers.timer组件为基础进行了自定义设计。在global.asax文件中生成并启动自定义计时器,由调用者订阅其发出的一分钟一次的事件,并将自身注册为监听global.timed的监听者。这样,global.timed每次触发事件时,注册者相应函数内的时间更新功能就会被执行,从而达到考生表中“答卷时间”字段值每分钟自动减一的功能。由于net中的timers.timer组件是基于服务器的,并为在多线程环境中用于辅助线程而设计的,服务器计时器可以在线程间移动来处理引发的elapsed事件,这样就可以比windows计时器更精确地按时引发事件。在客户端向服务器端请求时间时,要根据xmlhttprequest对象的http状态码来操作;在服务器端,必须将“cache-control”头设为“no-cache”来保证每次取得的数据都不是从缓存中得到的。下面是计时器的一段示例代码。 

  客户端:
  <script language="javascript" src="xmlhttp.js"></script>
  <script language="javascript">
  function clockfun(){
  var url="testtime.jsp";
  xmlhttp.open
  ("get",url,true); //lxmlhttp对象在xmlhttp.js中声明;
  
  xmlhttp.onreadystatechange=function(){ //指定服务器返回信息时客户端的处理程序
   if(xmlhttp.readystate==4){
  
  if(xmlhttp.status==200){// http的状态码
   document.getelementbyid("clock").innerhtml=xmlhttp.responsetext;}}}
  xmlhttp.send(null) ;}//发送请求到http服务器
  function timer(){//计时器
  
  window.setinterval('clockfun()',1000) ;}
  </script>
  服务器端(testtime.jsp)
  calendar
  begintesttime=calendarget instance ();
  begintest time.set(……);//省略号处为登录时间;
  long
  begintime=begintesttime.gettimein millis();
   long
  nowtime=calendar.getinstance().
  get'timeinmillis(); //获取当前时间
  response.setheader ("cache -control","no-cache");//数据不缓存
  long hastime=nowtime-begintime;
  //如用倒计时,此处要用总时长来减去此值;
  response.getwriter().write ((new long (hastime/60000)).tostring}+":"+(new long((hastime%60000)/1000)).tostring}) ;//以文本方式返回时间 response.getwriter().flush();
  3、试卷的定时存盘和预读试卷数据的实现。这两种功能的实现也采用ajax技术,只是由于请求的数据量比计时器的数据量大,所以请求时采用“post”方法。同时要求数据以xml格式返回,在客户端利用dom的强大功能来实现对数据的操作。用“post”,方法请求数据时客户端要添加request头,xmlhttp.setrequestheader ("content-type","applicatior/ x-/network/">网络环境为服务器在教育网内,客户机在局域网内和远程电信网。系统在局域网内部和广域网上的测试均达到了预期效果。
  
  三、结束语
  
  本文利用ajax技术改进现有的网上考试系统,实现了在线考试的b/s系统,使其达到了c/s系统所具有的功能,同时兼备了b/s系统固有的优势,即能实现用户的网上在线考试的功能,又不需要用户安装额外的客户端软件。新的考试系统具有准确计时、快捷、安全、方便等优点,从根本上改变了原有网上考试系统的多种弊端。
  
  参考文献:
  1、jesse james garrett.ajax: a new approach to web applications[eb/ol].http: // adaptivepath. com/ publications/ essaysjarchives/000385.php,2006-02-28.
  2、david flanagan.javascript: the detnitive guide 4th edition[m].0'neilly media,inc,2001.
  3、黄国平,陈斌.jsp与javascript整合使用[j].南通职业大学学报,2004(4).  
  • 上一个计算机论文:
  • 下一个计算机论文:
  •  作者:苏 琳 [标签: 技术 提升 系统性能 ]
    姓 名: *
    E-mail:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
    发表评论请遵守中国各项有关法律法规,评论内容只代表网友个人观点,与本网站立场无关。
    课堂教学中的讨论现象—基于群体动力学理论
    基于远程虚拟数字电路实验仿真技术的研究
    基于Si4432的散射式大气低能见度仪设计
    基于AT89C2051倒车防撞超声波报警系统设计
    基于ARM控制的1KW零电压零电流全桥DC/DC变换
    基于AHP的特殊电梯开发项目风险评价
    电网运行基于精细化管理的方式探讨
    基于公平视角的买方垄断市场信任机制实证研
    论基于Intranet技术的计算机通信网络的即时
    中国区域消费价格水平差异研究:基于面板门
    基于项目驱动模式下的“软件工程”教学改革
    基于软件工程开发的企业本体构建研究
    | 设为首页 | 加入收藏 | 联系我们 | 网站地图 | 手机版 | 论文发表

    Copyright 2006-2013 © 毕业论文网 All rights reserved 

     [中国免费论文网]  版权所有