Ajax学习笔记

1、Ajax技术背景、意义

       微软在97年推出了Ajax核心技术,在99年发布的IE5开始支持XMLHttpRequst对象,微软发明了这项技术后,并没有对其进行推广和发展。Ajax技术的流行得益于Google的推广,目前Goolge的Ajax技术远远领先于微软。

       Ajax技术的发展符合当今软件开发和互联网的的发展趋势。如今越来越多的软件开发是基于B/S模式,互联网正在发挥其优势,但是电脑通过互联网从服务器下载数据问题逐渐成为主要问题,Ajax技术的出现很好的弥补了这个缺点。从本质上看,Ajax技术并没有提高电脑从服务器下载数据的速度,它只是服务器和客户端的一个缓冲器,在用户体验角度上,是用户感觉速度快了。

2、Ajax名字全称

     ajax 的全称是Asynchronous JavaScript and XML,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式。

3、Ajax原理以及XMLHttpRequst对象

     Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。   要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" οnclick="loadXMLDoc()">Change Content</button>

</body>
</html>

代码来源: http://w3schools.com/ajax/tryit.asp?filename=tryajax_first

    1.创建XMLHttpRequest

    2.设置回调函数

    3.初始化XMLHttpRequest组建并发送请求

    4. 服务器返回响应信息

    5. 解析服务器返回的信息,更新用户界面

    详细调用过程如下



     序列图来源:点击打开链接

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


4、Ajax的优缺点

优点:1、用户体验好。页面无刷新,只在页面内与服务器交换数据。

            2、响应迅速。使用异步通信,不需打断用户的操作。

            3、减轻服务器和宽带负担。可以把以前服务器要做的事,在客户端处理,减轻数据传输和服务器处理事务的负担。

缺点:1、破坏了浏览器的后退机制,back按钮失效。目前的解决方案,提高了开发成本,背离了Ajax快速开发的目的。

            2、安全问题。Ajax技术暴露了更多的数据和服务器逻辑。


本文参考:http://www.cnblogs.com/ustbwuyi/archive/2007/02/08/645061.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值