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获取完整的回应数据

  2.3 简单的Demo示例:
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的基本实现原理)。

Ajax技术原理小结的更多相关文章

  1. Ajax 技术原理(转)

    Ajax 技术原理 2010-01-04 原文出处:http://www.nowamagic.net/ajax/ajax_AjaxPrinciple.php 在写这篇文章之前,曾经写过一篇关于AJAX ...

  2. 【原】Ajax技术原理

    主要内容: Ajax原理 Ajax核心技术 Ajax是Asynchronous JavaScript and XML的简称,意思是异步的JavaScript和XML. 主要包括技术: web标准的XH ...

  3. ajax 技术和原理分析

    ajax所包含的技术 大家都知道ajax并非一种新的技术,而是几种原有技术的结合体.它由下列技术组合而成. 1.使用CSS和XHTML来表示. 2. 使用DOM模型来交互和动态显示. 3.使用XMLH ...

  4. Ajax实例OR技术原理 转自 (http://blog.csdn.net/evankaka )

    摘要:AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.AJAX 是一种用于创建快速动态网页的 ...

  5. Ajax学习总结(1)——Ajax实例讲解与技术原理

    摘要:AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.AJAX 是一种用 ...

  6. Java之Ajax技术

    ajax(asynchronouse javascript and xml) 异步的javascript 和 xml(现在常把xml换成json): ajax是2005年提出的,在2006,2007年 ...

  7. Ajax工作原理

    在写这篇文章之前,曾经写过一篇关于AJAX技术的随笔,不过涉及到的方面很窄,对AJAX技术的背景.原理.优缺点等各个方面都很少涉及null.这次写这篇文章的背景是因为公司需要对内部程序员做一个培训.项 ...

  8. AJAX工作原理及其优缺点

    1.什么是AJAX?AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.它 ...

  9. 关于Ajax工作原理

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...

随机推荐

  1. less学习笔记

    less is more , than css less使用到的编译工具: koala less使用的软件: sublime text(推荐使用) 在less 中注释使用的是//     ( /**/ ...

  2. XP---------专区(Windows Exprience)--体验的简写

    待完善中 -------------------------------------- 1.0用u盘安装xp系统 用u盘给自己的或者朋友的电脑装上一个系统. 首先当然是下载一个系统文件,下面是本站的最 ...

  3. C# 的TCP Socket (同步方式)

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

  4. 使用ASP.NET WEB API构建基于REST风格的服务实战系列教程(一)——使用EF6构建数据库及模型

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 使用Entity Framework Code First模式构建数据库对象 已经决定使用EF C ...

  5. Top 5 iPad Pro Apps for Your Apple Pencil

    1. Procreate - 5 to 10 dollars 2. Adobe Sketch - Free 3. Paper - Free 4. Pixelmator 5. Notes

  6. js 时间相关函数

    实例: <!doctype html> <html> <head> <meta charset="utf-8"> <title ...

  7. ubuntu ping响应慢的解决方法

    ubuntu ping网站时每次ping指令都需要很久才能有响应,不过网络延迟却正常.   后来发现是因为/etc/nsswitch.conf文件中hosts的配置有问题,做如下修改后正常:   将原 ...

  8. jquery-创建弹出框原理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 用DateTime的ParseExact方法解析特殊的日期时间

    今天遇到一个特别的需求,需要从下面的字符串中转换成一个DateTime对象: [07-13 15:50:42] 主要问题是这个时间不是标准的时间,而是自定义的格式,即开头是月-日,然后是时间. 使用最 ...

  10. ++i vs i++

    [分析] i++与++i哪个效率更高? (1)在内建数据类型的情况下,效率没有区别: (2)在自定义数据类型Class的情况下,++i效率更高! 自定义数据类型的情况下:++i返回对象的引用:i++总 ...