美文网首页
AJAX异步请求的原理和过程

AJAX异步请求的原理和过程

作者: 只为清风明月 | 来源:发表于2018-11-08 14:42 被阅读0次

    Ajax的原理

    AJAX指的是异步的JavaScript及XML(Asynchronous JavaScript  And XML),是一种创建快速动态的技术,通过在后台与服务器进行少量的数据交互,实现页面的异步更新,在不重新加载整个页面的情况下做到页面的部分刷新。


    Ajax异步请求的过程

    Ajax创建异步的XMLHttpRequest对象

    Ajax的要点是XMLHttpRequest对象,不同的浏览器创建XMLHttpRequest对象的方法是有差异的,代码如下:

    //创建全平台兼容的xhr对象

    function getXHR(){

        var xhr = null;

           if( window.XMLHttpRequest ){

              //兼容IE7+ FireFox Chrome  Opera Safari

               xhr = new XMLHttpRequest();

               }else if( window.ActiveXObject ){

                try{xhr = new ActiveXObject( "MSxml2.XMLHTTP" );//即MSXML3

                    }catch(e){

                       try{ xhr = new ActiveXObject( "Micsoft.XMLHTTP" )

                //兼容IE6 IE5 很老的API,虽然浏览器支持,功能可能不完善,故不建议使用                         

                        }catch(e){

                              alert( "您的浏览器不支持Ajax!" )

                          }

                  }

            }

            return xhr;

      }

    IE浏览器使用ActiveXObject,而其他浏览器使用XMLHttpRequest的JavaScript内建对象,所以针对不同浏览器创建此对象,需要使用一条 "try and catch" 语句。

    首先声明一个保存XMLHttpRequestxmlHTTP变量,然后使用XMLHttp = new XMLHttpRequest 来创建此对象,这条语句针对FireFox 、Opera 、Safari浏览器,假如失败则尝试针对 Internet Explorer 6.0+ 的 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"),假如也不成功,则尝试针对 Internet Explorer 5.5+ 的 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")。假如这三种方法都不起作用,那么这个用户所使用的浏览器已经太过时了,他或她会看到一个声明此浏览器不支持 AJAX 的提示。

    ajax异步请求数据的过程

    (1)设置请求参数(请求方式,请求页面的相对路径,是否异步)

    (2)设置一个处理服务器下响应的函数onreadystatechange

    (3)获得异步对象readyState属性,该属性存有服务器相应的信息:

            readyState属性可能的值

           ·0 请求未初始化(在调用open之前)

           1 请求已提出(在调用send之前)

           2 请求已发送()

           3 请求处理中(部分数据可用,但服务器还没有完全响应)

           4 请求已完成(可以访问服务器响应)

    (4)判断响应报文的状态,若为200则说明服务器正常运行并返回响应数据

    (5)读取响应数据,可以通过responeseText来取回服务器返回的数据

    相关文章

      网友评论

          本文标题:AJAX异步请求的原理和过程

          本文链接:https://www.haomeiwen.com/subject/hjnixqtx.html