Ajax与XMLHttpRequest

来源:互联网 发布:淘宝雷锋侠怎么看 编辑:程序博客网 时间:2024/04/30 14:36

Ajax:

1.什么是Ajax

      AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。通俗的说就是在不刷新页面与服务器进行交互。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。当然,以前没有使用ajax的时候也是可以通过变通的方式实现”ajax“效果(例如:使用iframej进行伪装)。

2.Ajax的原理:

    AJAX 的要点是 XMLHttpRequest 对象。不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的。IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为 XMLHttpRequest 的 JavaScript 内建对象。Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

如图:

3.什么是异步与同步:

    简单的说就是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执 行完毕后才会继续运行其他代码页面假死状态解除。
而异步则这个AJAX代码运行中的时候其他代码一样可以运行。

   原理:其实ajax的原理就是队列机制,可刚学ajax的时候,就是在想ajax的异步会不会是线程的问题,然而当然不是,js本身就是单线程,所以不存在多线程的说法。所以说ajax的异步与同步的原理我觉得就是队列机制了。


XMLHttpRequest

1.什么是xmlHttpRequest

    xmlHttpRequest是Ajax的核心,中文可以解释为可扩展超文本传输请求。Xml可扩展标记语言,Http超文本传输协议,Request请求。XMLHttpRequest对象可以在不向服务器提交整个页面的情况下,实现局部更新网页。当页面全部加载完毕后,客户端通过该对象向服务器请求数据,服务器端接受数据并处理后,向客户端反馈数据。


2.xmlHttpRequest2与xmlHttpRequest的区别:

      xmlHttpRequest:   只支持文本数据的传送,无法用来读取和上传二进制文件。传送和接收数据时,没有进度信息,只能提示有没有完成。 受到"同域限制"(Same Origin Policy),只能向同一域名的服务器请求数据。

    xmlHttpRequest2:可以设置HTTP请求的时限。 可以使用FormData对象管理表单数据。可以上传文件。 可以请求不同域名下的数据(跨域请求)。可以获取服务器端的二进制数据。可以获得数据传输的进度信息。

3.xmlHttpRequest的创建

      XMLHttpRequest 得到了所有现代浏览器较好的支持。唯一的浏览器依赖性涉及 XMLHttpRequest 对象的创建。在 IE 5 和 IE 6 中,必须使用特定于 IE 的 ActiveXObject()构造函数。现在的浏览器一般都支持XMLHttpRequest 对象。

    创建代码:

        

                        //创建XMLHttpRequest对象的函数function createXHR(){if(typeof XMLHttpRequest!='undefined'){  //判断浏览器的类型return new XMLHttpRequest();}else if(typeof ActiveXObject !='undefined'){var Version=[        //不同版本'MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp'];for(var i=0;i<Version.length;i++){try{return new ActiveXObject(Version[i]);}catch(e){return;}}}else{alert("你的浏览器不支持XMLHttpRequest对象,请更换浏览器。");}}


5.xmlHttpRequest的属性与方法

        XMLHttpRequest对象的主要属性:

                1. xhr.readyState:XMLHttpRequest对象的状态,等于4表示数据已经接收完毕。

          2.  xhr.status:服务器返回的状态码,等于200表示一切正常。

          3. xhr.responseText:服务器返回的文本数据

          4. xhr.responseXML:服务器返回的XML格式的数据

          5. xhr.statusText:服务器返回的状态文本。

                6. xhr.timeout :设置HTTP请求的时限。

                7.xhr.ontimeout:超过时间之后的回调函数。

                8.xhr. onreadyStatechange:请求状态改变的事件触发器(readyState变化时会调用这个属性上注册的javascript函数)。

 

     XMLHttpRequest对象的主要方法:

               1.open():打开请求方法,与服务器建立连接,设置请求方式,地址,是否异步。

               2.send():发送请求,在open()之后调用。表示发送请求,封装参数。

               3.SetRequestHeaders():设置头信息,一般在使用post请求的时候使用到。

               4.getAllRequestHeaders():获取请求全部头信息。

               5.getRequestHeaders():获取头信息。

               6.abort():终止请求。


XMlHttpRequest2中还有很多强大的对象属性与方法,在使用的时候才知道它的强大。后面的总结案例中会使用到。

  

0 0
原创粉丝点击