AJAX技术
Asynchronous JavaScript and XML 异步JavaScript和XML
主要包含的技术
web标准(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)进行动态显示及交互;
使用 XML 和 XSLT 进行数据交换及相关操作;
使用 XMLHttpRequest 进行异步数据查询、检索;
工作原理:
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,
XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能:
动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。
提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如,在Amazon的购物车页面,当更新篮子中的一项物品的数量时,会重新
载入整个页面,这必须下载32K的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。
消除了每次用户输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。
直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。
用户单击Done之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。
Ajax可用于那些场景?
Ajax能够使用户的体验更加愉快,它可以提供响应更加灵敏的UI,并消除页面刷新所带来的闪烁。目前,由于要刷新整个页面,需要传送
大量的数据,因为必须重新发送整个页面。如果使用Ajax,服务器可以返回一个包含了感谢信息的500字节的消息,而不是发送26,813字节的消
息来刷新整个页面。即使使用的是高速Internet,传送26K和1/2K的差别也非常大。同样重要的是,只需要刷新与投票相关的一小节,而不是刷
新整个屏幕。
原始的Ajax:直接使用XmlHttpRequest
如上所述,Ajax的核心是JavaScript对象XmlHttpRequest,熟悉了该应用程序之后,进一步了解其工作原理细节。
首先,您拥有一些简单的定位点标记,它连接到一个JavaScriptcastVote(rank)函数。
function castVote(rank) {
var url = "/ajax-demo/static-article-ranking.html";
var callback = processAjaxResponse;
executeXhr(callback, url);
}
该函数为您想要与之通信的服务器资源创建一个URL并调用内部函数executeXhr,提供一个回调JavaScript函数,一旦服务器响应可用,该
函数就被执行。由于我希望它运行在一个简单的Apache环境中,“cast vote URL”只是一个简单的HTML页面。在实际情况中,被调用的URL将
记录票数并动态地呈现包含投票总数的响应。
下一步是发出一个XmlHttpRequest请求:
function executeXhr(callback, url) {
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send(null);
} // branch for IE/Windows ActiveX version
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send();
}
}
}
如您所见,执行一个XmlHttpRequest并不简单,但非常直观。和平常一样,在JavaScript领域,大部分的工作量都花在确保浏览器兼容方
面。在这种情况下,首先要确定XmlHttpRequest是否可用。如果不能用,很可能要使用Internet Explorer,这样就要使用所提供的ActiveX实
现。
executeXhr()方法中最关键的部分是这两行:
req.onreadystatechange = callback;
req.open("GET", url, true);
第一行定义了JavaScript回调函数,您希望一旦响应就绪它就自动执行,而req.open()方法中所指定的“true”标志说明您想要异步执行
该请求。
一旦服务器处理完XmlHttpRequest并返回给浏览器,使用req.onreadystatechange指派所设置的回调方法将被自动调用。
function processAjaxResponse() {
// only if req shows "loaded"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
502 502'votes').innerHTML = req.responseText;
} else {
alert("There was a problem retrieving the XML data:
" +
req.statusText);
}
}
}
描述
onreadystatechange
每次状态改变所触发事件的事件处理程序
readyState
对象状态值:
0 = 未初始化(uninitialized)
1 = 正在加载(loading)
2 = 加载完毕(loaded)
3 = 交互(interactive)
4 = 完成(complete)
responseText
从服务器进程返回的数据的字符串形式
responseXML
从服务器进程返回的DOM兼容的文档数据对象
status
从服务器返回的数字代码,比如404(未找到)或200(就绪)
statusText
伴随状态码的字符串信息
现在processVoteResponse()函数开始显示出其意义了。它首先检查XmlHttpRequest的整体状态以保证它已经完成(readyStatus == 4),
然后根据服务器的设定询问请求状态。如果一切正常(status == 200),就使用innerHTML属性重写DOM
分享到:
相关推荐
Ajax技术地图 ajax 简介,ajax 架构
Ajax技术实现的例子Ajax技术实现的例子Ajax技术实现的例子
ajax技术报告,关于ajax的介绍
ajax 技术,一些简单的技术应用!.............
传智播客培训 - AJAX技术入门 - 王兴魁 老师
AJAX技术总结.doc AJAX技术总结.doc
ajax技术详细解析
基于ajax技术的网页博客系统,实现基本的博客功能。提供源代码,程序运行截图,提供毕业设计论文。
一些常用的ajax技术文档,及其应用实例!
详细介绍了Ajax技术 简单的实例 让你快速精通Ajax技术
北大青鸟ACCP6.0 使用JSP/Servlet/Ajax技术开发新闻发布系统第一部分课件以及代码答案1到6章
基于Ajax技术的个人网站(内容丰富,充满个性化元素)
一个简单的jsp聊天室(ajax技术),没有用到数据库,非常适合初学者学习使用
AJAX技术学习总结分享.pdf
这是基于Ajax技术的论文,方便大家学习,版权所有,请不得复制用于自己论文,由此产生的任何法律责任由侵权人负责!
北大青鸟6.0课件S2使用JSP/Servlet/Ajax技术开发新闻发布系统2,,我只能上传小于50M的文件,所以分了2次上传,下载使用JSP/Servlet/Ajax技术开发新闻发布系统1后就是全部的了。如有问题加Q:329139513.注明来意
本文介绍了Ajax技术的原理及特点,并对采用STRUTS框架的Web应用中如何使用Ajax技术,通过异步数据交互的方式实现文本框输入渐进提示功能的方法进行了说明
ACCP6.0 S2 使用JSP/Servlet/Ajax技术开发新闻发布系统答案
Ajax 是Web 应用的一种新方法, 利用Ajax 技术开发的聊天室系统不仅解决了页面刷新带来 的白屏问题, 而且能降低服务器和网络传输负荷。文章介绍了Ajax 技术的工作原理及它在Asp1Net 中 的一种简便实现方式, 并以聊天...
浅谈如何利用AJAX技术改进在线考试系统.pdf