Ajax技術剖析

來源:互聯網
上載者:User

標籤:頁面   end   selector   asc   http   ons   var   代碼產生   select   

  Ajax的全稱是Asynchronous JavaScript and XML,是JS的特有功能,它作用是非同步JS資料互動,即在不進行頁面重新整理的情況下進行部分資料的擷取,效能較高。值得注意的是,僅有Ajax是不能夠實現跨域的操作,如果和JSONP或者WebSocket配合可以實現。

  Ajax工作方式:

  

1.Ajax成員屬性

  (1)responseText  後台返回資料存放的位置,傳回值為字串型

  (2)readyState   系統記錄執行的步驟,共有5個值:0 尚未初始化

                            1 服務串連已建立(open)

                            2 請求已接收(send)

                            3 請求處理中

                            4 請求完成

  (3)responseXML    傳回型別是XML類型,90%使用JSON方式

  (4)status      伺服器返回的http響應值,常用如下:

    • 200 請求成功
    • 400 錯誤請求
    • 500 內部伺服器錯誤
2.Ajax成員方法

  (1)open(method,url)  開啟檔案,method為兩種:POST/GET

  (2)send(body)  確認發送請求

  (3)setRequestHeader(name,value)  佈建要求頭部

    使用方式:xhr.setRequestHeader(‘content-type’,’application/x-www-form-urlencoded’);

    form的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data

3.Ajax監聽事件

  onreadystatechange  狀態變化事件控制對象,注意這個事件名全部是小寫而非駝峰式命名,不過平時會有代碼產生協助我們

4.Ajax實現四步驟

  Ajax有一句常用的話,1個事件(onreadystatechange)、2個屬性(responseText和readyState)、3個方法(open/send/setRequestHeader),在使用Ajax的時候經常會用到對應的內容。

  (1)var xhr = new XMLHttpRequest();//建立XMLHttpRequest對象

  (2)xhr.onreadystatechange=function(){

    console.log(xhr.readyState);

    console.log(xhr.responseText);

      }//xhr對象改變時自動調用此函數

  (3)xhr.open(‘GET‘,‘data.txt‘);//從data.txt中擷取內容

  (4)xhr.send(null);//發送請求

5.Ajax請求

  (1)GET  此方式負責從後台擷取資料,常用於驗證使用者

        GET的要求標頭部一般可以不寫,預設為xhr.setRequestHeader(‘content-type’,’application/x-www-form-urlencoded’)

  (2)POST  此方式向後台發送表單資料,如密碼

           POST的要求標頭部需要分情況而定,當表單method="post"時,如果沒有type="file"控制項,使用application/x-www-form-urlencoded,反之,使用multipart/form-data

6.代碼範例

  在使用之前,需要先建立一個data.txt的文檔。

 1 <script> 2     var box = document.querySelector(‘div’); 3     var btn = document.querySelector(‘button’); 4     btn.onclick = function(){ 5         var xhr = new XMLHttpRequest(); 6         xhr.onreadystatechange = function(){ 7             box.innerHTML = xhr.responseText; 8         } 9     xhr.open(‘GET’,’data.txt’);10     xhr.send(null);11     }12 </script>

Ajax技術剖析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.