AJax技术

Ajax技术原理介绍

字号+ 作者:H5之家 来源:H5之家 2015-10-11 09:14 我要评论( )

Ajax全称为 Asynchronous Javascript and XML (异步Javascript和XML),是指一种创建交互式网页应用的网页开发技术。 Ajax的核心是Javascript的XmlHttpRequest对象,该对象在IE5中首次引入,它是一种支持异步请求的技术,简而言之,XmlHttpRequest可以使用Jav

Ajax全称为 Asynchronous Javascript and XML (异步Javascript和XML),是指一种创建交互式网页应用的网页开发技术。

Ajax的核心是Javascript的XmlHttpRequest对象,该对象在IE5中首次引入,它是一种支持异步请求的技术,简而言之,XmlHttpRequest可以使用Javascript向服务器提出请求并处理响应,而不阻塞用户。

Ajax原理:
通过XmlHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用Javascript来操作DOM更新页面。

主要包含的技术:

基于Web标准的XHTML和CSS
使用DOM(Document Object Model)进行动态显示及交互
使用XML和XSLT进行数据交换及相关操作
使用XMLHttpRequest进行异步数据查询,检索
使用Javascript来绑定和调用


XmlHttpRequest对象的属性:

onreadystatechange 每次状态改变所触发事件的事件处理程序
responseText 从服务器进程返回的字符串形式
responseXML 从服务器进程返回的DOM兼容的文档数据对象
status 从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
statusText 描述了HTTP状态代码文本;并且仅当readyState值为3或4才可用。当readyState为其它值时试图

存取statusText属性将引发一个异常
readyState 对象状态值
 0:(未初始化)对象已建立,但是尚未初始化(尚未调用open方法)
 1:(初始化)对象已建立,代码已经调用了open()方法并且已经准备好把一个请求发送到服务器,尚未调用send方法
 2:(发送数据)send方法已调用,但是还没有收到一个响应
 3:(数据传输中)已接收HTTP响应头部分数据,但是消息体部分还没有完全接收结束,这时通过responseXML和ResponseText获取部分数据会出现错误
 4:(完成)数据接收完成,此时可以通过responseXML和responseText获取完整的响应数据

XMLHttpRequest对象的方法:

open()

函数原型:
open(DOMString method,DOMString uri,boolean async,DOMString username,DOMString password)
参数说明:
第一个是发送请求的HTTP方法(GET,POST,PUT,DELETE或HEAD)
第二个用于指定XMLHttpRequest对象发送请求的URL地址
第三个参数指定是否异步发送请求,默认为true,为了发送一个同步请求,需要设置为false
第四个参数和第五个参数对于要求认证的服务器提供用户名和密码

send()

在通过调用open()方法准备好一个请求之后,你需要把该请求发送到服务器。仅当readyState值为1时,你才可以调用send()方法;否则的话,XMLHttpRequest对象将引发一个异常。该请求被使用提供给open()方法的参数发送到服务器。当async参数为true时,send()方法立即返回,从而允许其它客户端脚本处理继续。在调用send()方法后,XMLHttpRequest对象把readyState的值设置为2(发送)。当服务器响应时,在接收消息体之前,如果存在任何消息体的话,XMLHttpRequest对象将把readyState设置为3(正在接收中)。当请求完成加载时,它把readyState设置为4(已加载)。对于一个HEAD类型的请求,它将在把readyState值设置为3后再立即把它设置为4。send()方法使用一个可选的参数-该参数可以包含可变类型的数据。典型地,你使用它并通过POST方法把数据发送到服务器。另外,你可以显式地使用null参数调用send()方法,这与不用参数调用它一样。对于大多数其它的数据类型,在调用send()方法之前,应该使用setRequestHeader()方法(见后面的解释)先设置Content-Type头部。如果在send(data)方法中的data参数的类型为DOMString,那么,数据将被编码为UTF-8。如果数据是Document类型,那么将使用由data.xmlEncoding指定的编码串行化该数据。

abort()

暂停与一个XMLHttpRequest对象相联系的HTTP请求,从而把该对象复位到未初始化状态

setRequestHeader()

该setRequestHeader(DOMString header,DOMString value)方法用来设置请求的头部信息。当readyState值为1时,你可以在调用open()方法后调用这个方法;否则,你将得到一个异常。

getResponseHeader()

getResponseHeader(DOMString header,value)方法用于检索响应的头部值。仅当readyState值是3或4(换句话说,在响应头部可用以后)时,才可以调用这个方法;否则,该方法返回一个空字符串。

getAllResponseHeaders()

该getAllResponseHeaders()方法以一个字符串形式返回所有的响应头部(每一个头部占单独的一行)。如果

readyState的值不是3或4,则该方法返回null。

Ajax应用的优势:

1. 通过异步数据传输,提高用户体验
2. 减少不必要的数据传输,节省带宽资源
3. 减轻服务器负担

Ajax应用的缺陷:

1. 不利于搜索引擎的优化
2. 破坏了浏览器的后退机制

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JQuery实现Ajax加载图片的方法

    JQuery实现Ajax加载图片的方法

    2016-02-24 17:01

  • 判断用户是不是为ajax请求

    判断用户是不是为ajax请求

    2016-02-24 17:00

  • Ajax与WEB开发 by alixixi.com

    Ajax与WEB开发 by alixixi.com

    2016-02-11 11:02

  • jQuery.ajax()的相关参数及使用

    jQuery.ajax()的相关参数及使用

    2016-02-08 16:00

网友点评