admin 管理员组文章数量: 1086019
2024年4月13日发(作者:log4j2优先级)
维普资讯
王义勇’何月顺
Wang Yiyong He Yueshun
(1.东华理工学院,抚州344000;2.东华理工学院长江学院,南昌 330013)
(1.East China Institute of Technology,Fuzhou 344000;
2.Yangtze College,East China Institute of Technology,Nanchang 330013)
摘要:AJAX(异步Java Script与可扩展标记语言)是Web应用开发的一种新理念。它将现有的多种技术进行结合,可
以构建更为动态和响应更灵敏的Web应用程序。文章介绍了AJA)(的主要技术,并以“部门绩效管理”为实例,探讨了AJA)(在
Web开发中的应用。
关键字:AJA XMLHttpRequest;XML;Web开发
中图分类号:TP3l1.11 文献标识码:A 文章编号:1 671—4792一(2006)7~0036—03
Abstract:Ajax(As nchronous JavaScript and XML) iS a new concept for web application development・It
combines a number of existing technOlOgies to bui Id more dynamiC and sensitive web applications.The paper
introduces Ajax’S major technologies.and takes“Sectors’Performance Management’’as the example to discussed
Ajax’S appl ications in the web development.
Kevwords:AJAX;×MLHttpRequest;XML;Web Development
O引言
1.1 AJAX的工作原理
目前,编写应用程序时有两种基本的选择:
①桌面应用程序;
②Web应用程序。
在传统的浏览器与服务器的交互方式中,采用同步方
式,由用户触发一个Http请求到服务器,服务器对其进行处
理后再返回一个新的Web页到浏览器。每次应用的交互都需
要向服务器发送请求,应用的响应时间就依赖于服务器的响
应时间。当服务器正在处理的时候,用户能做的只是等待,
这样,不会产生很好的用户体验;而在前后两个页面中的大
部分HTML代码往往是相同的,也浪费了许多带宽。传统的
其中桌面应用程序通常需要完全安装到您的计算机上,
并在您的计算机上运行。Web应用程序运行在Web服务器
上,只需通过Web浏览器访问。
不过,比这更为重要的是,应用程序的运行以及交互。
桌面应用程序一般很快,具有漂亮的用户界面和较好的动态
性,基本上不需要等待。另一方面,Web应用程序是现在的
潮流,它们提供了在桌面上不能实现的服务(比如电子购物、
网上书店)。但是,伴随着Web的强大而出现的是等待等待
服务器响应,等待屏幕刷新,等待请求返回和生成新的页面。
Web应用程序所提供的体验和用户从桌面应用程序所得到的
体验之间,产生了巨大的差距。
AJAX的出现,正在缩小这两者之间的差距,成为建立
Web应用的新途径。
1 AJAX技术相关
AJAX是由Adaptive Path公司的Jesse James Garrett
图一传统的Web应用模型(同步)
使用AJAX后,相当于在客户端和服务器之间加了一个中
间层——AJAx引擎。这样,并不是所有的用户请求都提交
给服务器。一些数据的验证和处理由AJAX自己来做,只有确
实需要从服务器读取新数据时,才由客户端通过JavaScript
命名的,系“异步JavaScript和XML(AsynchronouS
JavaScript and XML)”的英文缩写。
维普资讯
调用AJAX引擎,向服务器端发出Http请求,但它并不等待
请求的响应,用户可以继续浏览或交互。当服务端的数据以
XML形式返回时,AJAX引擎接收数据,并指定JavaScript函
数来完成相应的处理或页面的更新,而不是刷新整个页面,
从而实现用户操作与服务器响应的异步化。最重要的是,Web
站点看起来是即时响应的,而服务器和浏览器之间交换的数
据却大量减少,这在很大程度上缓解了服务器的数据处理压
力。AJAX的Web应用模型如图二所示。
图二AJAX的Web应用模型(异步)
1.2 AJAX技术组成
其实AJAX中所谓“AJAX引擎”,不是一个技术,它实际
上是几种技术的组合,每种技术都有其独特之处,合在一起
就成了一个功能强大的新技术。AJAX包括:
・
基于标准化的XHTML和CSS;
・
通过DOM实现动态显示和交互;
・
通过XML和XSLT来进行数据交换和处理;
・
xMLHttpRequest通过异步方式获取数据;
・
使用JavaScript来整合以上所有的技术。
一
般只需要使用到XMLHttpRequest、DOM、XML、
Ja vaS C ri Pt及c SS,就可以完成异步交互了,其中
xMLHttpRequest是关键。
(1)xMLHttpRequest是XMLHttp组件的对象,是AJAX
技术中最核心的技术。AJAx的无刷新更新页面特点,主要得
益于xMLHTTPRequest对象。
①XMLHttpRequest对象的常用属性有:
onReadystatechange:状态变化时触发的事件句柄;
AJ>×的原理及其在、/\,① 开发中的应用
ReadyState:当前状态(其中:4=完成);
responseText:以字符串形式返回响应;
responseXML:以XML文档对象返回响应;
status:服务器返回的状态码(例如404表示“文件未
找到”,200表示“成功”);
statusText:服务器返回的状态信息(例如“文件未找
到”,“成功”)。
②xMLHttpRequest对象的常用方法有:
abort():停止当前请求;
open(“method”,“URL”):建立对服务器的调用;
send(content):向服务器发送请求;
setRequestHeader(“haeder”,“vaiue”):设置header手F
和请求一起发送。
(2)DOM(Document Object Mode1)为操作HTML或XML
文档对象的节点结构提供了一组方法。通过调用DOM方法,
可以创建、定义HTML元素,并把元素附加到文档或者现有的
元素中,从而实现HTML的即时生成。在AJAX技术中当客户
发出的异步请求得NN务端响应时,由客户端JavaScript调
用DOM方法对页面元素进行修改,从而动态控制页面的显示
内容。
(3)XML是可扩展标记语言(eXtensib1e Markup
Language)的简称。它可以规范地定义结构化数据,使网上
传输的数据和文档符合统一的标准。XMLi表述的数据和文档,
可以很容易地让所有程序共享。
(4)JavaScript一直被定位为客户端的脚本语言,用
来实现表单数据的校验和网页特效的处理。在AJAX技术中,
一
方面,通过JavaScript函数来操作XMLHttpReq.uest,访问
应用服务器上应甩另一方面,当访问结果通过服务端以XML
形式返回时,可以通过xMLHttpRequest的ResponseXML文档
对象读取数据。
2 AJAX的应用实例
下面这个实例来源于一个实际的项目:××部门绩效
管理,使用.Net开发。以绩效指标的分类浏览为例,来简述
AJAX的应用。单击指标类型标签或分页连接,无须页面提交,
就会加载此类的指标,如图三、四所示。
图三指标数据加载中效果图
0 ~ 篇怒 t|2|0 s
睁 舾_5 i・l_e t;
每 鲤l 睁 0 0 1_ l_一ll
嘲疆_羲棚 明螂 棚啪蛀果_12 z 。
主 姆蚋井_凑 _e s—s
图四 指标数据加载完毕效果图
2.1服务器端处理请求的部分代码
//读取所需的指标信息
DA=new sq1DataAdapter(Sql,Conn);
DA.Fill(DS,“Mark“);
Dat£LView DV--new DataView(DS.Tables Mark“]);
//将指标信息转化为XML
S t r xML.AP P e n d(“<?Xm 1 v e r s i o n=\”1.0\”
encoding=\“GB2312\lt?>“);
维普资讯
StrXML.Append(”<Dataset>”);
Str=Str+”<TD>”十T.getElementsByTagName(”ID”)[0].
for(i--O;i<DV.Count;i++)
firstChild.data+”</TD>”;
{StrXML.Append(”<Data>”);
StrXML.Append(”<ID>”十DV[i][I]十”</ID>”);
Str:Str十”</TR>”;’
Str=Str十”</TABLE>’’;
StrXML.Append(”</Data>”);)
//将生成的Html加入到页面中
StrXML.Append(”</Dataset>”);
getObject( data’).innerHTML=Str;
ff输 XML
)
Response.ContentType=”text/xml”; 3结束语
Response.Write(StrXML);
AJAX带给我们的不仅仅是技术,更多的是以人为本的一
2.2客户端的部分JavaScript代码 种服务理念。不仅缓和了资源矛盾,也带来了丰富的用户体
//单击标签,触发以下JavaScript代码
验。
function ajaxRead(m)
在采用AJAX的开发上面,Google公司所有的主要产品
{getObject(’data’).innerHTML=”正在加载…
都用了这项技术一Gmail、Google Groups、Google Sug—
//创建XMLHttpRequest对象
gest和Google Maps。在“Google Suggest”中,按照你的
if(window.xMLHttpRequest)//j乍IE
输入显示建议条目的更新速度,几乎是立即更新的。再看看
{rep=new xMLHttpRequest 0;)
”Google Maps”,利用鼠标来放大、缩小地图,几乎是立即
else if(window.Activex0bJect)//IE
响应的,不用等待页面刷新。还有微软公司最近发布的Live
{rep=new Activex0bJect(”Microsoft.XMLHTTP”);)
系列服务,像Live Mail、Virtual Earth业务中也应用了
else{return;)
AJAX技术。
vat Url=”data.aspx?ID=”+m;//请求的URL 借助于Web上强有力的数据服务,再结合丰富的AJAX UI
rep.open(”GET”,Url,true);//true:异步方式
的力量,我们有理由相信,基于Web的应用程序将会有更广
rep.onreadystatechange:Handlestatechange;//指定状态 阔的前景。
变化时触发的事件句柄
rep.send( ); //发送信息
参考文献
)
【1 J Jesse James Garrett.AJAX:A New Approach to
function HandleStateChange()
Web Applications[EB/OL].http://www.adaptivepath.com/
{if(rep.readyState=:4) //完成
publications/essays/archives/000385.php.
{if(rep.status=200)//返回正常
[2J Dynamic Html and XML:The X ̄HttpRequest Object
{processXML(rep.responseXML);//处理)
[EB/OL].http://developer.apple.com/internet/
Else //出错 webcontent/xm1 httpreq.htm1.
{getObject( data’).innerHTML=”抱歉,装载数据失败.原
[3]David Flanagan.JavaScript权威指南[M].北京:
因:”十rep.statusText;)
机械工业出版社,2003.
) 一 ・
[4]曹锰,舒新峰.c牟与ASP.NET程序设计[M].西安:
)
西安交通大学出版社,2003.
function processXML(obj)
{//生成Html代码
作者简介
vat Str=”<TABLE>”:
王义勇(1982一),男,湖北随州人,东华理工学院硕士研
vat Doc=obd.getElementsByTagName(”Data”);
究生,主要研究方向:计算机网络与分布式数据库;
for(var i=O;i<Doc.1ength;i++)
何月顺(1971一),男,湖南道县人,副教授,硕士生导师,
{vat T=Doc[i];
主要研究方向:数据库应用、数据挖掘等。
Str=Str十”<TR>”:
版权声明:本文标题:AJAX的原理及其在Web开发中的应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1712970160a614895.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论