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