浅析Ajax概念、技术原理及应用实例

AJAX "Asynchronous Javascript And XML"(异步JavaScript和XML)是一种用于创建快速动态网页的技术。

1.0 优势:
1.1 通过异步模式,提升了用户体验。
1.2 优化了浏览器与服务器之间的传输,减少了不必要的数据往返,减少了带宽占用。
1.3 Ajax引擎在客户端运行,承担了一部分本来由服务器承担的共组,从而减少了大用户量下的服务器负载。
 
2.0 工作原理
Ajax核心是Javascript对象XmlHttpRequest。该对象在 IE5中首次引用,它是一种支持异步请求的技术。XmlHttpRequest使您可以使用Javascript向服务器提出请求并处理响应,而不是阻塞用户,达到无刷新的效果。
由于浏览器之间存在差异,创建XmlHttpRequest对象的方式也有差异(主要是IE和其他浏览器之间的差异)。
 
2.1 比较通用型的创建异步请求的方法:

 代码如下 复制代码
function CreateXmlHttp() {
    //非IE浏览器创建XmlHttpRequest对象的方法
    if (window.XmlHttpRequest) {
        xmlhttp = new XmlHttpRequest();
    }
    //IE浏览器创建XmlHttpRequest对象的方法
    if (window.ActiveXObject) {
    try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    catch (e) {
    try {
        xmlhttp = new ActiveXObject("msxml2.XMLHTTP");
    }
    catch (ex)
            { }
        }
    }
}

2.2 XmlHttpRequest相关属性:

onreadystatechange      每次状态改变所触发事件的事件处理程序。
responseText               从服务器进程返回数据的字符串形式。
responseXML                从服务器进程返回的DOM兼容的文档数据对象。
status                         从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
status Text                  伴随状态码的字符串信息
readyState                   对象状态值
0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
1 (初始化) 对象已建立,尚未调用send方法
2 (发送数据) send方法已调用,但是当前的状态及http头未知
3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据

 代码如下 复制代码
function SendAsyncRequest() {
var data = document.getElementById("XXId").value;
    CreateXmlHttp();  //创建XmlHttpRequest对象
if (!xmlhttp) {         //判断对象是否创建成功
       alert("创建xmlhttp对象异常!");
    return false;
    }
    xmlhttp.open("POST", url, false);   //开始发送异步请求
    xmlhttp.onreadystatechange = function () {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
            document.getElementById("XXShowId").innerHTML = xmlhttp.ResponseText;   //数据接收完毕
        }
    }
    xmlhttp.send();  
}

3.0 缺点:

1.破坏了浏览器后退按钮的正常行为,动态更新页面后,无法回到前一个页面的状态。
2.使用Javascript作为Ajax的基础引擎,Javascript的兼容性并不是很好。(当然现在流行的Jquery等javascript类库大大改善了这些问题,对Ajax的调用也方便了很多,本文只是简述了Ajax的基本实现原理)。

 

时间: 2024-09-17 01:40:24

浅析Ajax概念、技术原理及应用实例的相关文章

浅析Ajax跨域原理及JQuery中的实现分析

AJAX 的出现使得网页可以通过在后台与服务器进行少量数据交换,实现网页的局部刷新.但是出于安全的考虑,ajax不允许跨域通信.如果尝试从不同的域请求数据,就会出现错误.如果能控制数据驻留的远程服务器并且每个请求都前往同一域,就可以避免这些安全错误.但是,如果仅停留在自己的服务器上,Web 应用程序还有什么用处呢?如果需要从多个第三方服务器收集数据时,又该怎么办?    一.关于ajax跨域的思考 1.Ajax为什么不能跨域?到底是卡在哪个环节了?(下面项目中具体说,这里先说下结论). Ajax

分页技术原理与实现之无刷新的Ajax分页技术(三)_AJAX相关

紧接着上篇-分页技术原理与实现之Java+Oracle代码实现分页(二) ,本篇继续分析分页技术.上篇讲的是分页技术的代码实现,这篇继续分析一下分页技术的效果控制. 上篇已经用代码简单的实现了一个分页.但是我们都看到,代码中每次通过servlet请求取得结果集后,都会转向到一个jsp页面显示结果,这样每次查询页面都会刷新一下,比如查询出现结果集后要查看第三页,页面就会刷新一下.这样页面给人的效果感觉就会有点不舒服,所以我们希望能够在通过条件查询结果集后无论访问哪一页,页面都不会刷新,而只是结果集

分页技术原理与实现之无刷新的Ajax分页技术(三)

紧接着上篇-分页技术原理与实现之Java+Oracle代码实现分页(二) ,本篇继续分析分页技术.上篇讲的是分页技术的代码实现,这篇继续分析一下分页技术的效果控制. 上篇已经用代码简单的实现了一个分页.但是我们都看到,代码中每次通过servlet请求取得结果集后,都会转向到一个jsp页面显示结果,这样每次查询页面都会刷新一下,比如查询出现结果集后要查看第三页,页面就会刷新一下.这样页面给人的效果感觉就会有点不舒服,所以我们希望能够在通过条件查询结果集后无论访问哪一页,页面都不会刷新,而只是结果集

PHP图像识别技术原理与实现_php实例

其实图像识别技术与我们平时做的密码验证之类的没有什么区别,都是事先把要校验的数据入库,然后使用时将录入(识别)的数据与库中的数据做对比,只不过图像识别技术有一部分的容错性,而我们平时的密码验证是要100%匹配. 前几天,有朋友谈到做游戏点击抽奖,识别图片中的文字,当时立马想到的就是js控制或者flash做遮罩层,感觉这种办法是最方便快捷效果好,而且节省服务器资源,但是那边提的要求竟然是通过php识别图像中的文字. 赶巧那两天的新闻有:1.马云人脸识别支付:2.12306使用新的验证码,说什么现在

浅析Ajax语法_javascript技巧

Ajax是目前很普遍的一门技术,也是很值得探讨和研究的一门技术.本文将针对Ajax的发展过程并结合其在不同库框架中的使用方式来和大家分享下Ajax的那些新老语法. Ajax简介 Ajax全称为"Asynchronous Javascript And XML", 即"异步JavaScript和XML"的意思.通过Ajax我们可以向服务器发送请,在不阻塞页面的情况下进行数据交互,也可以理解为异步数据传输.在Ajax的帮助下我们的网页只需局部刷新即可更新数据的显示,减少了

浅析数字签名的工作原理 【小白级别的原创文章 仅供扫盲】

浅析数字签名的工作原理[小白级别的原创文章仅供扫盲]   最近发现个问题,很多摆弄电脑多年的朋友对"数字签名.数字证书"的概念一知半解,也搞不清它们的区别,对其重要性更是不得而知.看了看网上关于"数字签名"的解释,不是晦涩难懂就是枯燥高深,难怪很多朋友没耐心去了解它. 在正文之前先说几句废话,本人是个由内而外.白里透白的小白,稍微复杂点儿的东东一概不懂,稍微费点儿脑子的东东一概不碰,所以水平有限.为了提高内容的可读性,尽量避免乏味无趣的概念定义,高手务必无视此文.

Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

ORACLE集群概念和原理(二) Oracle集群概念和原理 Oracle的三种高可用集群方案 1 RAC(Real Application Clusters)                         多个Oracle服务器组成一个共享的Cache,而这些Oracle服务器共享一个基于网络的存储.这个系统可以容忍单机/或是多机失败.不过系统内部的多个节点需要高速网络互连,基本上也就是要全部东西放在在一个机房内,或者说一个数据中心内.如果机房出故障,比如网络不通,那就坏了.所以仅仅用RAC

jquery ajax:Ajax概念

 Ajax的技术的产生:       Ajax被认为是(Asynchronous JavaScript and XML的缩写).现在,允许浏览器与服务器通信而无需刷新当前页面的技术都被叫做Ajax(异步处理).       同步交互和异步交互:         同步是指:提交请求->等待处理->处理完成 这个期间客户端不能做任何事------等待接收方返回响应以后才发下一个数据包的通讯方式.       异步是指:请求通过事件触发->服务器处理(这时浏览器仍然可以做其他事情)->处

"爱说说"技术原理:与TXT交互及MDataTable对Json的功能扩展(二)

关于爱说说在技术选型的文章见:"爱说说"技术原理方案的定选思考过程   本篇将讲述"爱说说"比较重大的技术问题点及解决手段:   爱说说:http://speak.cyqdata.com/   杂说几句: 一开始,原本是打算在秋式开源团队找一JS人才来引导前台页面的呈现的,毕竟本人在JS还停留在原始的编码阶段,于是当时聊了一下. 再后来,接下来几天,由于秋式开源团队内部管理上有点小调整,还有新开任务小组的事,连续忙了几天,"爱说说"就也停了几天.