Ajax01 什麼是ajax、獲取ajax對象、ajax對象的屬性和方法

1 什麼是ajax

  ajax是一種用來改善用戶體驗的技術,其本質是利用瀏覽器提供的一個對象(XMLHttpRequest,也可稱之爲ajax對象) 向服務器發送異步請求;服務器返回部分數據(不是一個完整 的頁面),瀏覽器利用這些數據對當前頁面作部分更新; 整個過程,頁面無刷新,不打斷用戶的操做。ajax

  

 

  注意1:異步請求,指的是,當ajax對象發請求時,瀏覽器不會銷燬當前頁面,用戶仍然能夠對當前頁面作其它的操做。 編程

  

 

  注意2:打電話能夠當作是同步請求,發短信能夠當作是異步請求瀏覽器

  注意3:AJAX 不是一門的新的語言,而是對現有技術的綜合利用;本質是在HTTP協議的基礎上以異步的方式與服務器進行通訊。服務器

   

 2 如何獲取ajax對象

  

 獲取ajax對象源代碼app

 

3 ajax對象的幾個重要屬性

  a. onreadystatechange:綁訂一個事件處理函數, 該函數用來處理readystatechange事件。
    注:當ajax對象的readystate屬性值發生了改變, 好比,從0變成了1,則會產生readystatechange事件。
  b. readyState:有5個值(0,1,2,3,4),表示ajax對象與服務器通訊的進展。其中,4表示ajax對象已經得到了服務器返回的全部的數據。
  c. responseText:得到服務器返回的文本數據。
  d. responseXML:得到服務器返回的xml數據。
  e. status:得到狀態碼。異步

 

4 使用ajax的編程步驟

  step1. 得到ajax對象。 
    好比 var xhr = getXhr(); 
  step2. 發送請求。
    方式一: get請求 
      xhr.open('get', 'checkuname.do?uname=Sally',true); xhr.onreadystatechange = f1; xhr.send(null);ide

        參數1:請求方式函數

        參數2:請求地址post

        參數3:異步仍是同步
          true:異步請求(默認是異步請求,二貨才用ajax來實現同步請求【特殊狀況除外】)
          false:同步請求(當ajax對象發送請求時,瀏覽器會鎖 定當前頁面,用戶不可以對當前頁面作任何操做)。
    方式二: post請求 
      xhr.open('post','checkuname.do');url

      xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');

      xhr.onreadystatechange = f1; xhr.send('uname=Sally'); 注:      按照http協議要求,若是發送的是post請求, 在請求數據包裏面,應該包含有content-type消息頭; 默認狀況下,ajax對象不會添加該消息頭,因此須要 調用setRequestHeader方法來添加。   step3. 編寫服務器端的程序。經過只須要返回部分 數據(再也不須要返回完整的頁面)。   step4. 寫事件處理函數。     例如:       function f1(){ if(xhr.readyState == 4 && xhr.status == 200){ //得到服務器返回的數據 var txt = xhr.responseText; //更新頁面 ... } }