XMLHttpRequest對象javascript
變量,此屬性只讀,狀態用長度爲4的整型表示.定義以下:java
0 (未初始化)瀏覽器 |
對象已創建,可是還沒有初始化(還沒有調用open方法)服務器 |
1 (初始化)異步 |
已調用send()方法,正在發送請求post |
2 (發送數據)url |
send方法調用完成,可是當前的狀態及http頭未知spa |
3 (數據傳送中)xml |
已接收部分數據,由於響應及http頭不全,這時經過responseBody和responseText獲取部分數據會出現錯誤,對象 |
4 (完成) |
數據接收完畢,此時能夠經過經過responseBody和responseText獲取完整的迴應數據 |
方法:
open(method,url,boolean) | 打開XMLHttpRequest對象。其中method方法有get,post,delete,put。如果查數據,從服務器中獲得必定的數據,則使用get。如果直接提交到服務器中,更新必定的數據,則使用post;url是請求資源的地址。第三個參數表示是否使用異步。默認狀況是true,由於Ajax的特色就是異步傳送。若使用同步則false |
send | 發送請求Ajax引擎,讓Ajax引擎操做 |
send(body):發送請求Ajax引擎,讓Ajax引擎操做。其中發送的內容能夠是須要的參數,如果沒有參數,直接send(null)
Ajax的工做原理 至關於在用戶和服務器之間加了—箇中間層(AJAX引擎),使用戶操做與服務器響應異步化。並非全部的用戶請求都提交給服務器,像—些數據驗證和數據處理等都交給Ajax引擎本身來作, 只有肯定須要從服務器讀取新數據時再由Ajax引擎代爲向服務器提交請求。
Ajax:Asynchronous javascript and xml,實現了客戶端與服務器進行數據交流過程。使用技術的好處是:不用頁面刷新,而且在等待頁面傳輸數據的同時能夠進行其餘操做。
這就是異步調用的很好體現。首先得了解什麼是異步和同步的概念。
舉個例子:好比你去圖書館借某種書,惋惜圖書館此書被借完。這時能夠採用兩種作法。
第一種作法:在圖書館一直等待,直到有人還書,而後再去吃飯睡覺。
第二種作法:直接跟圖書館管理員約定,如果有人還書,直接通知你。你則該忙什麼忙什麼。到時候會通知你。
如何使用Ajax技術?
首先,有客戶端事件觸發Ajax事件。
而後,建立xmlHttpRequest對象,根據瀏覽器不一樣,建立的xmlHttpRequest對象不一樣。
用open調用,用send發送請求給Ajax引擎。
最後,執行完畢後,把結果返回給客戶端。
responseText屬性包含了從服務器發送的數據 每次 readyState 值的改變,都會觸發 readystatechange 事件