天天看点

axaj

AJAX(Asynchronous Javascript And XML)

1.什么是AJAX:

     是异步的javaScript And Xml,与服务器进行异步的数据交互,传输数据可以为XML,也可以为

     文本文件,或者JSON格式的文件。

2.最大的特点:

     不用刷新整个页面,就可以使页面实现局部刷新,通过JavaScript来控制页面的元素。

     与服务器进行交互。

3.同步和异步:

     同步交互:当客户端向服务端发送请求之后,需要等待服务器响应结束之后,才可以发送第二

               个请求。

     异步交互:当客户端向服务器发送请求之后,不需要等待服务器响应结束之后,就可以发送第二

               个请求。

4.ajax优点和缺点

     优点:

      AJAX使用Javascript技术向服务器发送异步请求;

      AJAX无须刷新整个页面;

      因为服务器响应内容不再是整个页面,而是页面中的局部,所以AJAX性能高;

     缺点:

      AJAX并不适合所有场景,很多时候还是要使用同步交互;

      AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大;

      因为AJAX是在浏览器中使用Javascript技术完成的,所以还需要处理浏览器兼容性问题;

5.ajax实现步骤(四步):

      1.得到XMLHttpRequest,不同的浏览器创建的方式是不一样的:

        大多数浏览器:var xmlHttp = new XMLHttpRequest();

        IE6:  var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

        IE5.5(更早):  var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

      2.打开连接: xmlHttp.open("","",bool);

        打开与服务器的连接,里面有三个参数:

        1.提交方式:GET 或者 POST;

        2.服务器URL: 请求的服务器位置,GET在URL后面加个?,?号后面都是参数

        3.为布尔类型:true/false ,如果为true代表异步请求。

        例如:xmlHttp.open("GET","AjaxDemo1?userName=lipeng",true);//true代表异步请求

      3.发送请求:xmlHttp.send(null):

        发送数据到服务器:

        参数:代表请求体里面的内容,如果是GET,由于GET没有请求体,所以给null,如果不给,

              可能造成部分浏览器出现错误。

              如果是POST:需要给定指定的参数:例如xmlHttp.send("userName=lipeng");

      4.监听从服务器传送过来的数据  0,1,2,3,4五种状态都可以监听到

        xmlHttp对象的五种状态:

            > 0状态:刚创建,还没有调用open()方法; 

            > 1状态:请求开始:调用了open()方法,但还没有调用send()方法

            > 2状态:调用完了send()方法了;

            > 3状态:服务器已经开始响应,但不表示响应结束了!

            > 4状态:服务器响应结束!(通常我们只关心这个状态!!!)

            通过xmlHttp.readyState 得到状态码

        服务器的响应码:

            200 ok 成功

            404 访问不到资源

            500 服务器出现错误

            通过xmlHttp.status 得到服务器响应码

         我们一般只关心服务器是否结束和响应码是否成功

         if(xmlHttp.readyState==4 && xmlHttp.status==200){}

         等到服务器传送过来的数据:

            得到文本文件:

                 xmlHttp.responseText;

            得到XML格式的文件:

                 xmlHttp.responseXML;

常用Jquery操作ajax请求,ajaxfileupload上传文件(http://blog.csdn.net/qiantujava/article/details/37934225)。

继续阅读