`
stinge
  • 浏览: 153694 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AJAX技术

 
阅读更多

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(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这一技术的概念由Jesse James Garrett提出,它并不是一种全新的编程语言,而是通过将...

    AJAX技术在连锁店事务管理系统的应用

    **AJAX技术在连锁店事务管理系统中的应用** **一、AJAX技术介绍** AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换...

    AJAX技术学习总结分享.pdf

    AJAX技术学习总结分享.pdf 一、Ajax技术原理总结 Ajax技术是一种创建交互式网页应用的网页开发技术,也是一种用于创建快速动态网页的技术。它通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。...

    基于AJAX技术的博客系统设计与实现

    **基于AJAX技术的博客系统设计与实现** 在当今互联网技术快速发展的时代,AJAX(Asynchronous JavaScript and XML)已经成为构建高效、互动性极强的Web应用的重要技术。本项目"基于AJAX技术的博客系统设计与实现",...

    Ajax技术快速入门--精通

    Ajax技术的应用范围广泛,包括动态表单、实时聊天、地图应用、数据网格和许多其他交互性强的Web功能。 总的来说,Ajax技术通过提升Web应用的用户体验,已经成为现代Web开发不可或缺的一部分。它使得开发者能够构建...

    AJAX技术总结.doc

    ### AJAX技术精析 #### 一、AJAX技术概述 AJAX,即"Asynchronous JavaScript and XML"(异步JavaScript和XML),是一种用于构建交互式网页应用的网页开发技术。它结合了多种关键技术,包括XHTML+CSS用于表现,DOM...

    Ajax技术及其在STRUTS应用中的实现

    **Ajax技术及其在STRUTS应用中的实现** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心在于利用JavaScript与服务器进行异步通信,提高了用户体验,...

    利用Ajax 技术开发无刷新聊天室系统

    ### 利用Ajax技术开发无刷新聊天室系统 #### 一、引言 随着互联网技术的发展,聊天室作为网络社交的重要组成部分,在线聊天系统的需求日益增长。传统的基于Web的聊天室,为了实现实时更新消息,往往需要频繁地刷新...

    使用JSP/Servlet/Ajax技术开发新闻发布系统

    总结,"使用JSP/Servlet/Ajax技术开发新闻发布系统"涉及到的技术栈广泛,包括前后端交互、数据库操作、MVC设计模式等多个方面,开发者需要掌握这些技能才能成功构建出高效、用户体验良好的新闻发布平台。

    如何利用AJAX技术改进在线考试系统

    ### 如何利用AJAX技术改进在线考试系统 #### 引言 随着互联网技术的飞速发展,线上教育和在线考试已成为教育领域的重要组成部分。然而,传统的在线考试系统往往受限于B/S架构的固有问题,如数据传输量大、用户体验...

    ajax技术在web模式开发中的应用研究

    ### AJAX技术在Web模式开发中的应用研究 #### 一、引言 随着互联网技术的不断发展,Web应用的需求也在不断变化。传统的Web应用依赖于页面之间的完全重载来响应用户的动作,这种方式不仅用户体验较差,还增加了...

    ajax技术报告

    ajax技术报告,关于ajax的介绍

    JSP页面中模糊查询 基于Ajax技术

    【Ajax技术】Ajax,全称"Asynchronous JavaScript and XML",是一种构建富互联网应用程序(RIA)的技术,它允许在不刷新整个网页的情况下与服务器交换数据并更新部分网页内容。Ajax的核心是XMLHttpRequest对象,它使...

    Web 2.0动态网站开发 : Ajax技术与应用光盘

    在《Web 2.0动态网站开发 : Ajax技术与应用》这本书中,作者阮征可能会详细讲解如何使用Ajax技术实现以下功能: - **异步数据交换**:Ajax使得网页可以在后台与服务器进行通信,用户无需等待页面刷新即可看到更新。...

    使用JSP/Servlet/Ajax技术开发新闻发布系统2

    【标题】"使用JSP/Servlet/Ajax技术开发新闻发布系统2"所涵盖的知识点主要集中在构建动态Web应用程序的三个核心技术上:JavaServer Pages (JSP)、Servlet和Asynchronous JavaScript and XML (Ajax)。这些技术在开发...

    ajax技术文档

    ### AJAX技术概述与应用 #### 一、AJAX的历史由来与概念定义 AJAX(Asynchronous JavaScript and XML)作为一种革新性的技术,虽然并非新技术的诞生,但它却为Web应用程序带来了全新的体验。AJAX的概念最早由...

    北大青鸟6.0课件S2使用JSP/Servlet/Ajax技术开发新闻发布系统2

    北大青鸟6.0课件S2使用JSP/Servlet/Ajax技术开发新闻发布系统2,,我只能上传小于50M的文件,所以分了2次上传,下载使用JSP/Servlet/Ajax技术开发新闻发布系统1后就是全部的了。如有问题加Q:329139513.注明来意

    Ajax 技术 PPT

    Ajax技术的出现极大地改善了用户体验,因为它使得用户在与网页交互时可以保持界面的连续性和流畅性。 Ajax的核心在于JavaScript,它通过操纵XMLHttpRequest对象来实现与服务器的异步通信。XMLHttpRequest对象是Ajax...

Global site tag (gtag.js) - Google Analytics