admin 管理员组

文章数量: 887030


2023年12月17日发(作者:inputbox参数设置)

山西师范大学学报(自然科学版) 第24卷第4期 2010年12月 Journal of Shanxi Normal University Natural Science Edition Vo1.24 No.4 Dee.2010 文章编号:10094490(2010)0404-0054-04 基于AJAX技术的WEB开发模式的研究与应用 王琦 (运城学院计算机科学与技术系,山西运城044000) 摘要:AJAX是一套由诸多现有技术组合而成的一种新的设计模式.它允许WEB页面在不刷新整个 页面的情况下与服务器端进行通信,可以提供更好的用户体验.文章首先对两种开发模式做了比较,阐 述了AJAX的工作原理,然后给出一个经典的AJAX应用,最后对AJAX技术做出总结和展望. 关键词:AJAX;WEB开发;同步;异步 中图分类号:TP311 文献标识码:A 0 引言 传统WEB开发模式是一种同步概念,也就是说用户只有在当前请求完成后才能发出新的请求,用户 行为和服务器行为完全是一种同步的关系;而基于AJAx技术的WEB开发模式采用的是一种异步概念, 它充分挖掘了WEB浏览器的潜力,使得WEB应用程序的表现能力更加丰富,更加智能,交互能力更强, 响应速度更快¨ . 1 AJAX技术 1.1基于MAX技术的WEB开发模式 基于AJAX的WEB开发模式是一种异步概念.这意味着客户端和服务器端不必再相互等待,而是进 行一种并发的操作,用户在发送请求以后可以继续当前工作,包括浏览或提交信息.在服务器响应完成之 后,AJAX引擎会将更新的数据显示给用户看,而用户则根据响应内容来决定自己下一步的行为. AJAX的工作原理是在用户和服务器间加了一个中间层,使用户操作与服务器响应异步化.这样就把 以前的一些服务器负担的工作转移到客户端,利用客户端通过闲置的处理能力来处理,减轻了服务器和带 宽的负担,达到节约网络带宽,提高页面浏览速度的目的.具体的说就是在客户端和WEB服务器端中问 又加入了一个AJAX引擎和一个XML数据缓冲区,它们负责处理一部分数据,当用户再想从服务器获取 数据的时候,只需要发送一小部分请求,服务器端只返回一小部分内容就可以r.这种方式比原来一次把 所有请求发出去,然后所有页面都收回来,在性能上有了很大的提高 j.图1是两种WEB开发模式的对 比. 很明显,相对于传统的WEB开发模式,基于AJAX的WEB开发模式具有以下优点 : (1)可以按照客户端需要取数,大大减少冗余请求,减轻了服务器的负担. (2)可以把服务器端的功能转移一部分到客户端,充分发挥客户端Pc的处理能力,进一步减轻服务 器端负担,节约空间和带宽成本. (3)无刷新更新页面,减少等待时间. 收稿日期:20104)3—15 作者简介:王琦(1978~),男,山西平陆人,运城学院计算机科学与技术系讲师,硕士,主要从事数据库理论及应用方面的 研究. 

第4期 王琦:基于AJAX技术的WEB开发模式的研究与应用 (4)更好的用户体验,使得B/S程序的运行越来越接近C/S程序的效果. (5)基于标准化的并被广泛支持的技术,而其组合之后功能更加强大. ……一 ……一 …… 晤嚣孺………一 用户界面 J I 用户界面 I HTML t 十 css T  lAJAx引擎 l裂惦 …一 httF 清求 HTMI css数据 书泵… 事话一一 wEB服务器 千 1 wE嘣务器l 十 数据库 l 数据库 l ………一旦 楚趟……一 ……一传统WEB开始模式 _月睦蹙奄搏…一…一 AJAXWEB开发模式 图1两种WEB开发模式对比 Tab.1 The contrast between the two WEB development patterns 1.2 AJAX技术组成 AJAX不是一个新技术,它是基于XHTML、CSS、DOM、JavaScript、XML、xMLHttpRequest等多种成熟技 术的一种新的设计模式. (1)xMLHttpRequest对象.xMLHttpRequest对象是AJAX最为核心的一个技术,它正是AJAX技术与 众不同的地方.xMLHttpRequest为运行在浏览器中的JavaScript脚本提供了一种在页面之内与服务器通 信的手段,页面内的JavaScript可以在不刷新页面的情况下从服务器获取数据,或者向服务器提交数据.但 是,该对象并不是一个W3C规定的标准技术,所以在不同的浏览器上,创建XMLHttpRequest对象的方式 并不相同.不过可以使用简单的判断语句保证在浏览器支持的情况下正确创建该对象 J. var xmlhttp null; if(window.XMLHttpRequest) {xmlhttp=new xMLHttpRequest();}//创建其他浏览器(如FireFox)支持的对象 else if(window.ActiveXObject) {xmlhttp=new ActiveXObject(”Microsoft.XMLHTFP”);}.//创建IE支持的对象 (2)JavaScript.JavaScript是一种基于对象的脚本语言,使用它主要用于开发WEB应用程序中的客户 端部分;也就是说它被定义为客户端脚本语言,它可以通过操纵XMLHttpRequest对象同数据库进行交互. (3)DOM.DOM的全称是文档对象模型(Document Object Mode1),它被认为是仅次于XMLHttpRequest 对象的AJAX技术中的核心技术.在DOM模型里,HTML标记都被认为是一个对象,例如:div对象,table 对象等等.DOM模型就规定了这些对象所具有的属性、方法和事件.通过这些性质,可以对一个已经显示 于浏览器的页面进行内容和格式的修改.例如可以通过以下语句利用服务器端返回的数据对ID为“div. Time”的内容进行修改,实现局部内容的刷新. document.getElementById(”divTime”).innerHTML=xmlHttp.responsetext; (4)XML.XML即为可扩展标记语言(Extensible Markup Language).它提供了一个标准,利用这个标 准,可以根据实际需要定义自己新的标记语言,并为这个标记语言规定它特有的一套标签.用XML表述的 数据和文档,很容易让所有程序共享. (5)XHTML和CSS.XHTML指扩展超文本标记语言(Extensible HyperText Markup Language),是一种 为了适应XML而重新改造过的HTML,相比HTML,它在设计上更加严密.CSS是Cascading Style Sheets (层叠样式表)的简称.在标准网页设计中CSS负责网页内容(XHTML)的表现. AJAX技术是将上述几种成熟的技术按照一定的方式结合起来,通过协作发挥各自的作用:使用 

山西师范大学学报(自然科学版) XHTML和CSS标准化呈现;使用DOM实现动态显示和交互;使用XML进行数据交换和处理;使用XM— LHttpRequest进行异步数据处理;最后用JavaScript绑定和处理所有数据. 2 AJAX应用一多级联动 多级联动是一个典型的WEB应用,采用传统的WEB开发模式,任何一级的改变,都需要向服务器提 交整个页面,而服务器实际上只需要其中发生变动的那部分数据,服务器在相应操作执行完后又要把整个 页面回传,而回传页面中发生变化的也只是发生变动的前一级数据对应的下级数据,这样就造成了大量冗 余数据在网络间的传输,会造成整个页面的刷新,用户体验差,效率低;而应用AJAX技术之后,可以完全 规避传统WEB开发模式的这些缺点,实现按需取数,局部刷新,用户体验好,效率高.程序执行如图2所 不: 图2多级联动运行界面 Tab.2 Multi—level linkage running interface 2.1服务器端编码 主要可以包含以下两个过程: InitParent().该过程主要实现访问数据库,返回与省相关的数据,然后与第一级列表进行绑定,与传 统WEB开发模式基本相同. InitChild().该过程主要根据浏览器端以异步方式提交的与省相关的数据访问数据库,返回该省对应 的与市相关的数据,然后将该数据回传给浏览器端. 服务器端编码和传统WEB开发模式的区别主要是以异步的方式接收和回传数据,编码相对简单,在 此不再列出. 2.2浏览器端编码 var xmlHttp=new ActiveXObject(”Microsoft.XMLhttp”);//假定为IE浏览器 function selectChange() {vat pName=document.getElementById(”DropPro”).value; var url=”defauh3.aspx?pName=”+escape(pName); xmlHttp.open(”GET”,url,true); xmlHttp.send(nul1); xmlHttp.onreadystatechange = handleStateChange; } function handleStateChange() { if(xmlHttp.readystate=:4 J I xmlHttp.readystate==”complete”) {updateList();} } function updateList() {ClearList(); 

第4期 王琦:基于AJAX技术的WEB开发模式的研究与应用 var results=xmlHttp.responseText.split(”,”); for(var i=0;i<results.1ength一1;i++) {var op=results[i]; document.getElementById(”DropCity”).options.add(new Option(叩)); } } function ClearList() {while(document.getElementById(”DropCity”).childNodes.1ength>0) {document.getElementById(”DropCity”).removeChild(document.getElementById (”DropCity”).childNodes[0]); } } 浏览器端编码主要包含三个函数: selectChange():负责当第一级选择项发生变化时以异步的方式向服务器提交xmlHttp请求.handleS— tateChange():负责监听返回数据,如果数据返回,则调用updateList().updateList():首先调用ClearList() 函数清空二级列表,然后将返回数据向二级列表中进行填充. 应用AJAX技术之后,浏览器端向服务器提交的数据是第一级列表发生变动的数据,服务器向浏览器 回传的数据是与第一级列表变动数据的相关数据.很明显,在浏览器和服务器之间传输的数据量大大减 少,效率大大提高.真正实现了按需取数,局部刷新. 3结束语 利用AJAX技术开发出与桌面应用程序相媲美的用户界面,可以大幅减轻服务器负担,提高系统效 率;但是AJAX技术同样也有不足之处:开发人员需要掌握大量技术、浏览器的多样性以及没有一个好的 集成开发环境等等,另外AJAx技术主要适用于和服务器交互频繁的应用程序,因此我们在做WEB开发 时,一定要在适宜的场合使用AJAX技术,只有使用得当,才能最大限度的发挥AJAx技术的优势. 参考文献: [1]克拉恩,帕斯卡雷洛,杰姆斯.Ajax实战(Ajax in action中文版)[M].北京:人民邮电出版社,2006. [2]徐弛.Ajax模式在异步交互Web环境中的应用[J].计算机技术与发展,2006,16(11):228~229,233. [3]杨华.AJAX及在ASP.NET中的实现[J].现代电子技术,2006,(12):79~83. [4]游丽贞,郭宇春,李纯喜.Ajax引擎的原理和应用[J].微计算机信息,2006,22(6):205~208. [5]周旋,王丽芳,蒋泽军.基于Ajax的即时消息系统的设计与实现[J].科学技术与工程,2009,(2):446~450 Research and Application 0f WEB Development Pattern Based on AJAX Technology WANG Qi ^ (Department of Computer Science&Technology,Yuncheng University,Yuncheng 044000,Shanxi,C hina) Abstract:AJAX is a kind of design pattern comprised with a group of existing techniques.It can realize that web page commu— nicates with server without refreshing full page,and can offer better user experience.In this paper,the principle of AJAX was de— scribed by comparing two development patterns.Then,a classical AJAX application was given.Finally.the summarization and the future of AJAX were shown. Key words:AJAX;WEB development;synchronization;asynchronism 


本文标签: 数据 服务器 技术 浏览器 用户