Ajax全称为 Asynchronous Javascript and XML (异步Javascript和XML),是指一种创建交互式网页应用的网页开发技术。 Ajax的核心是Javascript的XmlHttpRequest对象,该对象在IE5中首次引入,它是一种支持异步请求的技术,简而言之,XmlHttpRequest可以使用Javascript向服务器提出请求并处理响应,而不阻塞用户。 Ajax原理: 主要包含的技术: 基于Web标准的XHTML和CSS
onreadystatechange 每次状态改变所触发事件的事件处理程序 存取statusText属性将引发一个异常 XMLHttpRequest对象的方法: open() 函数原型: 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. 通过异步数据传输,提高用户体验 Ajax应用的缺陷: 1. 不利于搜索引擎的优化 |
|