AJAX之XMLHttpRequest

      AJAX(asynchronous Javascript And XML),是指一種建立交互式網頁應用的網頁開發技術。主要經過後臺與服務器進行少許數據交換,實現異步更新。AJAX的核心是JavaScript對象XMLhttpRequest。javascript

      XMLHttpRequest對象能夠在不向服務器提交整個頁面的狀況下,實現局部更新網頁。當頁面所有加載完畢後,客戶端經過該對象向服務器請求數據,服務器端接受數據並處理後,向客戶端反饋數據。 XMLHttpRequest 對象提供了對 HTTP 協議的徹底的訪問,包括作出 POST 和 HEAD 請求以及普通的 GET 請求的能力。XMLHttpRequest 能夠同步或異步返回 Web 服務器的響應,而且能以文本或者一個 DOM 文檔形式返回內容。儘管名爲 XMLHttpRequest,它並不限於和 XML 文檔一塊兒使用:它能夠接收任何形式的文本文檔。XMLHttpRequest 對象是名爲 AJAX 的 Web 應用程序架構的一項關鍵功能。java

      對於不一樣的瀏覽器,使用不一樣的方法來建立XMLHttpRequest對象。IE使用ActiveXObject,而其餘瀏覽器使用名爲XMLHttpRequest的javascript內建對象。要克服各個瀏覽器的差別,可使用以下一段簡單的代碼:瀏覽器

var XMLHttp=null;
if (window.XMLHttpRequest)
{
XMLHttp=new XMLHttpRequest()
}else if (window.ActiveXObject)
{
XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
      XMLHttpRequest五個狀態:

        HTTP請求的狀態,但一個XMLHttpRequest除此建立時,readyState屬性的值從0開始,直到接收完整的HTTP響應,這個值增長到4,每個狀態都有一個相關聯的非正式的名稱,以下所示:服務器

狀態 名稱 描述
0 Uninitialized 初始化狀態,XMLHttpRequest對象已建立或已被abort()方法重置
1 Open open()方法已調用,可是send()方法未調用。請求尚未被髮送。
2 Send Send()方法已調用,HTTP請求已發送到WEB服務器,未接收到響應
3 Receiving 全部響應頭部都已經接收到。響應體開始接收但未完成
4 Loaded Http響應已徹底接收
     注意事項:

      1.不一樣瀏覽器中,對象創建方式不一樣。架構

      2.設置回調函數時,不要在函數名後面加括號。異步

      3.Open方法最多有五個參數,其中前三個是必須的async

      4.回調函數中,最好將判斷readyState和status的兩個if條件分開寫。函數

      5.當前服務器端沒有正確返回XML數據時,在javascript中使用responseXML的方式獲取返回的xml數據對應的DOM對象時,FireFox和IE的結果是有差異的。
      剛剛接觸AJAX,簡單的從宏觀上作個總結,在深一步的結束後,在作完善。若有錯誤,歡迎指出!!



spa

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。code

相關文章
相關標籤/搜索