|
Ajax全稱為 Asynchronous Javascript and XML (異步Javascript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。 Ajax的核心是Javascript的XmlHttpRequest對象,該對象在IE5中首次引入,它是一種支持異步請求的技術(shù),簡而言之,XmlHttpRequest可以使用Javascript向服務(wù)器提出請求并處理響應(yīng),而不阻塞用戶。 Ajax原理: 主要包含的技術(shù): 基于Web標準的XHTML和CSS
onreadystatechange 每次狀態(tài)改變所觸發(fā)事件的事件處理程序 存取statusText屬性將引發(fā)一個異常 XMLHttpRequest對象的方法: open() 函數(shù)原型: send() 在通過調(diào)用open()方法準備好一個請求之后,你需要把該請求發(fā)送到服務(wù)器。僅當readyState值為1時,你才可以調(diào)用send()方法;否則的話,XMLHttpRequest對象將引發(fā)一個異常。該請求被使用提供給open()方法的參數(shù)發(fā)送到服務(wù)器。當async參數(shù)為true時,send()方法立即返回,從而允許其它客戶端腳本處理繼續(xù)。在調(diào)用send()方法后,XMLHttpRequest對象把readyState的值設(shè)置為2(發(fā)送)。當服務(wù)器響應(yīng)時,在接收消息體之前,如果存在任何消息體的話,XMLHttpRequest對象將把readyState設(shè)置為3(正在接收中)。當請求完成加載時,它把readyState設(shè)置為4(已加載)。對于一個HEAD類型的請求,它將在把readyState值設(shè)置為3后再立即把它設(shè)置為4。send()方法使用一個可選的參數(shù)-該參數(shù)可以包含可變類型的數(shù)據(jù)。典型地,你使用它并通過POST方法把數(shù)據(jù)發(fā)送到服務(wù)器。另外,你可以顯式地使用null參數(shù)調(diào)用send()方法,這與不用參數(shù)調(diào)用它一樣。對于大多數(shù)其它的數(shù)據(jù)類型,在調(diào)用send()方法之前,應(yīng)該使用setRequestHeader()方法(見后面的解釋)先設(shè)置Content-Type頭部。如果在send(data)方法中的data參數(shù)的類型為DOMString,那么,數(shù)據(jù)將被編碼為UTF-8。如果數(shù)據(jù)是Document類型,那么將使用由data.xmlEncoding指定的編碼串行化該數(shù)據(jù)。 abort() 暫停與一個XMLHttpRequest對象相聯(lián)系的HTTP請求,從而把該對象復(fù)位到未初始化狀態(tài) setRequestHeader() 該setRequestHeader(DOMString header,DOMString value)方法用來設(shè)置請求的頭部信息。當readyState值為1時,你可以在調(diào)用open()方法后調(diào)用這個方法;否則,你將得到一個異常。 getResponseHeader() getResponseHeader(DOMString header,value)方法用于檢索響應(yīng)的頭部值。僅當readyState值是3或4(換句話說,在響應(yīng)頭部可用以后)時,才可以調(diào)用這個方法;否則,該方法返回一個空字符串。 getAllResponseHeaders() 該getAllResponseHeaders()方法以一個字符串形式返回所有的響應(yīng)頭部(每一個頭部占單獨的一行)。如果 readyState的值不是3或4,則該方法返回null。 Ajax應(yīng)用的優(yōu)勢: 1. 通過異步數(shù)據(jù)傳輸,提高用戶體驗 Ajax應(yīng)用的缺陷: 1. 不利于搜索引擎的優(yōu)化 |
|
|