admin 管理员组

文章数量: 1184232


2024年4月13日发(作者:tomcat启动一闪而过)

维普资讯

第24卷第4期 

2007年8月 

华东交通大学学报 

VoJ.24 No.4 

Aug.,2007 

Journal of East China Jiaotong University 

文章编号:1005—0523(2007)04—0097—04 

基于Ajax技术的Web应用开发研究 

严丽平,袁可风,宋 凯 

(华东交通大学信息工程学院,江西南昌330013) 

摘要:在与传统的Web应用开发模型对比的基础上,提出了一种基于Aja】【技术的Web应用开发模型,分析了Aja】【技术的工作 

原理及关键技术,并讨论了它在Web投票系统中的具体实现. 

关键词:Ajax;XMLHttpRequest;DOM;Web应用 

中图分类号:TP311 文献标识码:A 

l 引言 

在传统的浏览器与服务器的交互方式中,由用 

户触发一个瑚 请求到服务器,服务器对其进行 

处理后再返回一个新的Web页到浏览器,每当服务 

强大方式组合而成.Ajax包含: 

客户端 

用户界面 

JavaSctipt l I HTML+( ̄ 

器处理浏览器提交的请求时,用户只能空闲等待,浪 

费时间和带宽…1. 

调 

lmP 

l 

XML 

据 

I Aj弘引擎 I 

Ajax提供与服务器异步通信的能力,从而使用 

户从请求/响应的循环中解脱出来.借助于Aiax,可 

以在用户单击按钮时,使用JavaScript和DHTML立 

即更新uI,并向服务器发出异步请求,以执行更新 

或查询数据库.当请求返回时,就可以使用JavaScript 

和CSS来相应地更新uI,而不是刷新整个页面,这 

请求 数据 

Web和,或)函 服务器 

使得用户甚至不知道浏览器正在与服务器通信, 

web站点看起来是即时响应的. 

传统动态页面技术与Ajax技术的对比如图1 

所示[2]: 

传统的Web应用开发模型 

数据库,后端处理 

—]雨 

基于Ajax的Web应用开发模型 

图1两种Web应用开发模型对比 

(1)基于XHTML和CSS标准的表示; 

2 Ajax技术 

2.1 Aj a】(定义 

Aj8.X是Asynchronous JavaScript and XML的缩写, 

2005年2月由Jesse James Garrett提出[引.Ajax不是 

(2)使用DOM进行动态显示和交互; 

(3)使用XMLHttpRequest与服务器进行异步通 

信; 

(4)使用Java,Script绑定和处理所有数据. 

2.2 Ajax工作原理 

种技术,实际上,它由几种蓬勃发展的技术以新的 

收稿El期:2007—04—27 

Ajax应用程序在用户和服务器之间引入了一个 

作者简介:严丽平(1980一),汉族,女,安徽桐城人,讲师,在读研究生,主要研究方向:web应用,数据挖掘 

维普资讯

98 华东交通大学学报 

中间件——Ajax引擎,由JavaScript编写并通常放置 

在一个隐藏帧内.引擎的责任包括构造用户操作界 

面以及与服务器的沟通,允许用户与应用程序进行 

异步交互,无须直接访问服务器.用户动作的处理由 

Apple公司在Safari l.2浏览器中也实现了该对 

象[ . 

通过XMLHttpRequest对象,Ajax可以像桌面应 

用程序一样只同服务器进行数据层面的交换,而不 

用每次都刷新界面,也不用每次将数据处理的工作 

都交给服务器来做;这样既减轻了服务器负担又加 

快了响应速度、缩短了用户等待的时间.因此,XML— 

HttpRequest是Ajx技术解决无需刷新整个页面就可 a

传统的表单提交来激发一个H1TrP请求,变为 

Java ̄,ript调用AJax引擎.给用户的回应不用等到服 

务器处理后返回,而直接由AJax引擎来处理,比如 

简单的数据校验,在内存中编辑数据,甚至一些导航 

功能.如果Ajax引擎需要从服务器获取一些数据, 

比如提交数据给服务器处理,加载额外的界面代码, 

或者获取新数据,这种情况下AJax引擎通常以XML 

格式激发一个异步请求,用户端完全没有被中断的 

感觉.传统的Web应用交互模式是同步的,而基于 

Ajax技术的Web应用交互模式是异步的,如图2所 

示. 

客户端 

服务器端 系兢处理 系戋ii处理 

传统w出应用梗型交互梗式(同步) 

客户端 

,一一一一一一一…一…一一一一一一一一一一一一一、 

\ \譬 ’ 良 一-曼7- 

一 …7一 一_,一 一 …一『I一 

一一 

目轴 

罄卜\f \ 馨謦. 

服 萌 萌 

基于蛳x的岫应用}夏墅变互梗式(异步) 

图2两种Web应用模型交互模式的对比 

2.3 Ajax中的关键技术 

1)XMLHttpRequest 

XMLHttpRequest是Ajxa技术体系中最为核心的 

技术.1999年上半年,Microsoft公司率先在IE5.0中 

首次通过名为XMLHrlq'p的ActiveX对象来支持这种 

技术.XMLHrlq'p对象使得页面中的脚本具有了在不 

刷新页面的情况下直接与服务器通信的能力.2000 

年,Mozilla公司在Mozilla1.0(Netscape 7)中实现了具 

有相同接口的原生对象,即XMLHttpRequest对象. 

以从服务器获取新数据这个问题的关键所在. 

2)DOM 

DOM(Document Object Mode1)是一个W3C规约, 

可以以一种独立于平台和语言的方式访问和修改一 

个文档的内容和结构,是表示和处理一个HTML或 

XML文档的常用方法.在Ajxa应用中,用户界面的 

更新是使用DOM来完成的.DOM能够为JavaScript 

引擎公开文档(网页),通过使用DOM可以采用编程 

方式操作文档的结构l_5 J. 

3)JavaScript 

JavaScript是一种基于对象和事件驱动并具有安 

全性能的脚本语言,使用它可以与HTML、Java脚本 

语言一起实现在一个网页中链接多个对象,与网络 

客户交互作用,从而可以开发客户端的应用程序.在 

Ajax中JavaScfipt则是主要推动力,它通过调用 

XMLHttpRequest的属性和方法来获取服务器端数 

据,然后调用DOM的API来更新Web页面的内容, 

而不需要更新整个页面. 

4)XML . 

XML是用于网络上数据交换的语言,具有与描 

述Web页面的HTML语言相似的格式,通过XML规 

范定义结构化数据.用XML表述的数据和文档,可 

以让所有程序共享. 

3基于Ajax技术的Web应用开发 

下面以一个投票系统为例,介绍AJax技术在 

Web应用开发中的使用l6j. 

目前,在有些站点提供了评价文章的功能,当用 

户单击vote按钮后需等待一会儿,整个页面被刷新. 

在这个过程中,服务器需要传送大量的数据,给用户 

带来屏幕闪烁的感觉.而使用了Ajax技术后,服务 

器只需要返回一个包含感谢信息的消息,同样,只需 

要刷新与投票相关的内容,而不是刷新整个屏幕.这 

使得用户界面响应更加灵敏,并消除了页面刷新所 

带来的闪烁.主要设计如下: 

维普资讯

第4期 严丽平,等:基于Ajax技术的Web应用开发研究 99 

1)JavaScript函数castVote(rank) 

function castVote(rank){ 

var url:“/ajax—demo/static—article—rank— 

ing.html”; 

if(req.status=:200){//服务器处于就绪 

状态 

¥(‘votes’).innerHTML=req.response・ 

Text;//使用innerHTML属性重写DOM的“votes”节 

点内容 

}else{ 

alert(“There was a problem retireving the 

var callback=proeessAjaxResponse; 

executeXhr(callback,ur1); 

} 

该函数为与之通信的服务器创建了一个URL 

XML data:\n”+req.statusText); 

并调用内部函数executeXhr,提供一个回调JavaScript 

函数,由一些定位点标记连接,一旦服务器响应可 

用,该函数就被执行. 

2)发出一个XMLHttpRequest请求 

function executeXhr(callback,ur1){ 

if(window.XMLHttpRequest){ 

req=new XMLHttpRequest();//在非IE浏览 

器中创建XMLHttpRequest对象 

req.onreadystatechange=callback;//定义了 

JavaScript回调函数,一旦响应自动执行 

req.open(“GET”,url,true);//异步执行该请 

求 

req.send(nul1); 

} 

else if(window.ActiveXObject){//在IE 5.0、IE 6. 

0中创建XMLHttpRequest对象 

req=new ActiveXObject(‘‘Microsoft.XML. 

H'I3"P”); 

if(req){ 

req.onreadystatechange:callback; 

req.open(“GET”,url,true); 

req.send(); 

} 

} 

} 

旦服务器处理完XMLHttpRequest并返回给浏 

览器,使用req.onreadystatechange指派所设置的回调 

方法将被自动调用. 

3)回调方法proeessAjaxResponse() 

function proeessAjaxResponse(){ 

if(req.readyState==4){//检查XMLHttpRe. 

quest的整体状态以保证已经完成 

} 

} 

} 

4结语 

在过去的几年中,由于在开发Web应用程序时 

对后端投入太多,而使得Web用户界面对用户自然 

和响应灵敏方面投入不足.Ajax技术的出现,通过对 

浏览器端的JavaScript、DHTML和服务器异步通信的 

组合,使得构建更为动态和响应更灵敏的web应用 

程序成为现实.现在Ajax技术的应用已经越来越广 

泛,小到简单、功能单一的G ̄sle Suggest,大到错综 

复杂的Google Maps,都已经采用这项技术,而微软和 

Amazon等业界巨头也在积极开发相关应用.Ajax不 

仅在技术上日趋成熟,其应用前景也将会越来越好. 

参考文献: 

[1]游丽贞,郭字春等.Ajax引擎的原理和应用[J].微计算 

机信息.2006,22(6):205—207. 

[2]梁民,汪伟.基于MAX技术开发web应用[J].电脑知识 

与应用.2006,(2):119—193. 

[3]Jesse James Garrett.Ajax:A New Approach to web Applica・ 

tions[EB/OL].hnp://adaptivepatII.com/publications/es・ 

says/archives/000385.php,2005. 

[4]Apple Developer Connection.Oynamic HTML and XML:The 

XMLHttpRequest Object[EB/OL].http://developer.apple. 

com/intemet/webeontent/xmlhttpreq.html,2005. 

[5]Jay.AJAX in Aciton[EB/OL].http://www.Javarss.com/a・ 

jax/j2ee—ajax.html,2005. 

[6]David Teare.AN INTRODUCTION TO AJAX[EB/OL]. 

hap://dev2dev.bea.corn/pub/a/2005/08/ajax-introd

uc’ 

.,

tion.html,2005. 

维普资讯

100 华东交通大学学报 2007年 

Research of Web Application Development Based on Ajax 

YAN Li-PiIlg,YUAN Ke-FeIlg,SONG Kai 

(School of Information En ̄neefing,East China Jiaotong University,Nanchang 33001 3,China) 

Abslract:On the basis of the comparison with traditional model for Web applications,the paper puts forward a kind of 

model of Web application development based on Ajax,and analyzes the working theory and critical technologies of Ajax, 

which is then discussed in the realization of a Web voting system. 

Key words:ajax;XML http request;DOM;web application 

(上接第66页)得多,因为经它映射后,文件中的数 

据直接就存放缓存中了,省去对文件执行I/O操作 

参考文献: 

的时间,此外它还可以正确读取大于2GB的图像, 

有效地解决了传统的文件指针只能读取2GB数据 

的限制;其次由于本程序使用了缓存技术,即每次在 

内存中的数据,只是影像文件中的一块,所以占用内 

存很小.再之,本文采用了临时文件是分块分层的倒 

金字塔结构,使得每次需要浏览的数据都可以在文 

件跨度很小的范围内找到相应的数据,使得图像浏 

览速度比较快,视觉无需等待.总之,采用本方法进 

行海量遥感图像的读取具有一定的优势. 

[1]孙家炳,舒宁,关泽群.遥感原理、方法和应用[M].北 

京:测绘出版社,1997. 

[2]胡伟忠,刘南,刘仁义.基于内存映射文件技术的海量影 

像数据快速读取方法[J].计算机应用研究,2005,(2): 

111—112. 

[3]田杰,吴力合,吕建新.地理信息系统中算法的研究[J]. 

微计算机信息,2003,7. 

[4]希望图书创作室.Visual C++6.0技术内幕[M].北京: 

北京希望电子出版社,1999,215—218. 

[5]吕京国,黄国满.用Visual C++实现大数据量的快速 

存取[J].测绘科学,2002,(9):29—31. 

The Project of Quick Scanning Means for Large Scale Images 

ZHAN Zi.cai 

(School of Electrical and Electronic Engineeifng,East Chiua Jiaotong Univesrity,Nanchang 330013,China) 

Abstract:The mpid development of information technology and sensor technology has given rise to the geometircally pro- 

gressive in the case of remote sensing data.When images al-e scanned or images are zoomed,traditional method is very 

stow,especially when all images are zoomed,all images are read,images are got at intervals,whose slow speed is oppres・ 

sire,and when the images are vectored,work efficiency is very low.This paper puts forward a project that it takes much 

)hne to rebuild image document,to make it pyramid structure,and to read the images through storage mapping file tech— 

nique,SO it is very simple.Thus,it is not necessary to wait when the images are scanned or zoomed. 

Key words:storage mapping file technique;pyramid structure;cache technique;data block 


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