AJAX技术1.1 AJAX简介AJAX(异步JavaScript和XML)是一种以异步方式与服务器交互的Web开发技术。它是现有技术(如JavaScript、XML和DOM)的组合应用。它可以在客户端浏览器和服务器之间异步通信,并允许客户端从服务器而不是整个网页请求少量信息。通过使用AJAX技术,可以在不更新整个页面的情况下更新网页的本地部分,从而节省网络带宽,提高响应速度和良好的用户体验。1.2 AJAX原则AJAX使用HTML和CSS进行标准化显示,使用DOM进行页面层次的动态变化,使用XML和XTSL进行数据处理和交换,使用XMLHttpRequest对象进行异步数据传输。首先,客户端使用JavaScript的XMLHttpRequest对象向服务器发起请求。然后,服务器端处理并返回请求的内容。返回的内容可以是一个HTML代码,甚至是一个简单的字符串,或者是一个XML文档对象。接下来,客户端使用XMLHttpReques对象来获取服务器返回的内容。此时,客户端的JavaScript脚本不是直接在页面上显示数据,而是通过HTML/DOM/CSS处理数据并格式化页面上的信息。XMLHttpRequest对象和JavaScript处理程序通常封装在客户端AJAX引擎中。工作原理图如图1所示。2银行内部员工考核系统的设计与实现2.1系统开发背景现代银行业竞争日益激烈。国内银行对员工的服务和业务技能要求越来越高,日常考核也更加频繁。然而,全国银行系统人员众多,传统的考核方式效率低下,远远不适应现代银行的发展。构建一个适合现代银行业发展的网络评估平台,可以提高银行管理效率,解决目前国内大多数银行面临的问题。采用C/S模式可以实现这样一种方案,但复杂度较高,成本较大。它还要求客户端安装相应的软件来实现,并且不容易维护。如果采用传统的B/S模式,使用起来要方便得多,但是用户体验效果和交互能力较差。AJAX技术可以弥补这一点。最后,确定了基于AJAX技术的B/S模式来实现该系统。2.2系统功能要求系统有两个用户角色:考生(参加考试的银行职员)和经理(银行经理),其中“经理”是操作系统的“后台”。根据用户的角色,分为以下几个模块:“考生”部分包括理论考试、传票检索和打字考试模块,其中理论考试的题目都是客观题。“管理员”部分包括题库管理、试卷管理、用户管理和结果查询模块。在成功登录系统后,“考生”将首先得到一张传票,然后是打字测试,最后是理论测试。系统的“用例图”如图2所示。每个模块的主要功能如表1所示。2.3系统设计与实现在考试过程中,大部分的数据处理和计算工作都是使用Javascript和相关技术在客户端浏览器上实现的。这种设计一方面提高了系统的响应速度,另一方面减轻了服务器的负担。客户端使用XMLHttpRequest对象向服务器发送和获取数据,而服务器使用ASP.NET技术处理数据。因此,XMLHttpRequest对象在系统运行过程中起着重要的作用。创建XMLHttpRequest对象的函数如下: functioncreateajaxobj(){ varajax=false;如果(窗口。基于浏览器类型创建一个XMLHttpRequest对象实例。XMLHttp ');}否则如果(窗口。XMLHttpRequest){ Ajax=新XMLHttpRequest();}返回ajax}假设要创建一个名为xmlHttpRequest的对象,可以使用以下代码: var XMLHttp=CreateAjaxobj();“复印传票”和“打字测试”模块所需的数字数据和文章材料由“经理”预先输入系统。考生完成这两个方面的考试后,客户端脚本Javascript会计算出凭证录入的正确率、打字速度和打字准确性。统计完成后,XMLHttpRequest对象被用于异步子 试卷完成后,将会发出试卷。根据试卷生成过程中设置的试题数量,从题库中随机抽取每个考生。随机选择方法是通过使用SQL语言中的子句“按新id排序()”来实现的。对于分配给考生的每一个问题,在相应的表格中都有相应的记录。该记录包含正确答案、考生给出的答案和分数等信息。2)主题导航栏的实现。主题导航栏以“树形菜单”的形式呈现给“考生”。每个问题类型中包含的主题都放在div容器中。结合CSS和Javascript来控制div容器的显示和隐藏,实现“树形菜单”的展开和折叠,方便导航。每当考生回答一个问题时,问题编号所在的容器的背景被设置为另一种颜色,该颜色已与未回答的问题区分开来。

3)候选人的答案和分数。当考生参加考试时,他不会一次下载所有的主题到客户端,而是先下载第一个主题,用HTML和CSS格式化它,然后把它放在div容器中并显示出来。之后,每次考生选择一个主题,他都会从服务器上获取一个,并格式化它,然后把它放入div容器中。Div容器可以使用DOM技术生成。这样,当考生选择所有的题目时,整个试卷中的题目被下载到客户端,每个题目被格式化并放入div容器中。为了区分主题,div容器的id属性被设置为不同的值。这样,考生在检查已经完成的问题时,就不必再向服务器提出请求。通过控制div容器的显示和隐藏属性,可以确保当前窗口中只显示一个主题。获取主题的核心代码如下: FunctionSendRequest(问题_标识)//问题_标识是主题{ XMLHttp }的编号(关键字)。OnReadystateChange=GetQuestion;//调用getquestionxmlhttp.open ('get ',' getquestion.aspx?qid='问题id,真);xmlHttp.send(空);//发送请求} function getquestion(){ varcontent=false;if(xmlhttp . ready state==4 xmlhttp . status==200)//请求完成{ content=xmlhttp.responsesext//从服务器获得的主题内容与内容变量}返回内容一起存储;}候选人可以通过点击“上一个主题”和“下一个主题”按钮或通过右侧的“树菜单”在主题之间切换。切换时,它会检测当前问题的答案是否已更改,如果已更改,它会将最新的答案发送到服务器进行处理,同时它会存储在客户端页面的隐藏字段中,以便下次检测。这个检测操作由客户机上的Javascript完成。因此,只有当考生第一次回答问题或对问题进行了更改时,当前答案和相关数据才会发送到服务器。提交答案的核心代码如下:函数提交答案(STU _ QUES _ ID,STU _ ANS) {XMLHttp.open ('POST ',' HandleAnswer.aspx ',TURE);设置请求标题(“内容类型”、“应用程序/x-www-form-URL coded”);xmlhttp . send(' stu id=' stu _ ques _ id ' ans=' escape(stu _ ans));}评分操作由“经理”完成。试题都是客观题,系统会自动评分。评分过程是将考生给出的答案与正确答案进行比较,如果答案相同,分数将会增加。计算方法用来计算每个考生的总成绩。该方法的原型如下: FlowComputeScore(StringStudent No,StringXAmd){ FlowResult=0;字符串sql=' select * from ExamStuAns,其中StuNo=' ' studentNosql=sql ' '和ExAmpleID=' ExAmpleID;SqlDataReader dr=db。getReader(SQL);//db对象是由类DBOP创建的,它封装了通用方法和相关属性。tostring()。等于([博士的“正确答案”)。tostring()){ float=float int . parse([博士的“studentanswer”]。tostring());} }关闭博士();返回结果;}3安全分析本质上,基于AJAX的网络应用程序和传统的网络应用程序面临着相同的安全问题。它们都通过Http协议与服务器交互,并且主要保存在会话中。然而,随着Ajax程序中更多的控制权被带到客户端,安全风险甚至更大。传输的数据可以被加密,以确保传输数据的安全性。一种方法是使用Javascript提供的加密功能,另一种方法是使用SSL标准的安全Http连接来确保安全性。参考文献:[1]阿斯里森,舒塔。阿贾克斯基础课程[硕士]。北京:人民邮电出版社,2006。[2]曹延龙,叶大丰。Ajax编程技术及实例[。北京:人民邮电出版社,2007。[3]柯子聪。阿贾克斯发展的要点[。北京:电子工业出版社。2006.[4]扎克斯,麦克派克,福塞特,阿贾克斯高级编程[男]。北京:人民邮电出版社,2006。[5]黄、钟。ASP.NET阿贾克斯网站开发[男]。北京:清华大学出版社,2008。