一、和HTTP的關系
和http協(xié)議關系密切,從請求到響應各步驟都可以體現(xiàn)。
二、五個狀態(tài)
請求過程中,具有0到4五個狀態(tài),每個狀態(tài)改變時都會觸發(fā)onreadystatechange事件。
三、核心對象:XmlHttpRequest
各種方法模擬http協(xié)議通信過程,參數(shù)也與頭信息格式很相似,以便讀寫所需的數(shù)據(jù)。
四、過程
1、創(chuàng)建XmlHttpRequest對象
2、設置請求方式、請求URL
3、發(fā)送請求
4、監(jiān)聽狀態(tài)并即時處理(狀態(tài)碼判斷sucess/error)
五、封裝注意點
1、兼容性
IE中每次請求的URL必須是有變化的,才能保證接收到最新的請求資源。因此,可以在URL后面加上一段實時變化的字符串(請求主體),如日期、隨機數(shù);
IE6-不支持XmlHttpRequest對象,只支持ActiveXObject對象。
2、請求內(nèi)容
GET方法:將內(nèi)容字符串拼接到URL尾部,內(nèi)容以參數(shù)形式,存在于open()。
POST方法:先在open()和send()之間加入setRequestHeader("application/x-www-form-urlencoded"),
內(nèi)容以參數(shù)形式,存在于send()。
請求內(nèi)容不能為中文,需要先用encodeURIConponent()作編碼處理。
3、超時時間
設置超時時間,防止網(wǎng)絡問題,讓用戶進行無用的等待。
4、基本參數(shù)
type, url, obj(請求內(nèi)容), sucess, error, timeout
六、請求資源
請求的資源最終會保存在XmlHttpRequest對象的屬性中,不同類型的資源會放在不同的屬性上。
七、最佳傳輸格式
ajax的傳輸格式,最好是json格式,其他方面都用xml傳輸。