JavaScript之AjAX

來源:互聯網
上載者:User

標籤:字串   timer   http   color   根據   timeout   func   接受   abort   

一:AJAX一詞的實際意義為“不發生頁面跳轉,非同步載入內容並改寫頁面內容的技術”,非同步處理的優點是不會讓使用者白白等待

1.1  XMLHttpRequest:如果要通過javascript動態向伺服器發送請求,則需要使用XMLHttpRequest對象,基本的處理流程如下,在建立了XMLHttpRequest對象之後,就需要對伺服器的url進行指定,以發送請求

 1 var xhr = new XMLHttpRequest(); 2 xhr.onreadystatechange = function(){ 3     if(xhr.readState ==4){ 4           if(xhr.status == 200){ 5                alert(xhr.responseText); 6           } 7     } 8 }; 9 xhr.open(‘GET‘,‘http://example.com/something‘);10 xhr.setRequestHeader(‘If-Modiified-Since‘,‘Thu 01 Jun 1970 00:00;00 GMT‘);11 xhr.send(null);

1.1.1     readyState的含義:0:open()尚未被調用,1:send()尚未被調用,  2:伺服器尚未返迴響應    3:正在接受來自伺服器的響應    4:完成了對來自伺服器的響應接受

1.1.2     status中包含了響應的狀態代碼,如果通訊正常結束,該值為200.關於http響應的其他狀態代碼請參考其他書籍

1.1.3     在responseText中包含了伺服器響應的字串形式。而對於XML的情況,響應會以DOM對象的形式包含於responseXML之中。根據情況選擇合適的響應類型即可。不過無論響應的形式如何,在responseText中都會含有相應的值,所以只要使用responseText的值就不會有什麼問題

1.1.4  傳遞給open()的參數是HTTP請求類型及通訊目標伺服器的URL,其實它還可以再接受第三個參數,如果第三個參數為false,這時XMLHttpResponse則會執行同步通訊

1.1.5   setRequestHeader用於要求標頭部設定

1.1.6   實際向伺服器發送請求的是send(),如果是post請求類型,則會將參數發送給伺服器,如果是GET或HEAD請求等不需要發送資料的請求,則參數為null

1.2 逾時處理:在同步通訊時,通訊過程很費時,則會在send()處等待,所以最好設定合適的逾時時間,如果逾時則取消改操作,進行下一步或則再次請求

 1 var xhr = new XMLHttpRequest(); 2 var timerId = window.setTimeout(funtion(){ 3        xhr.abort(); 4 },500);//五秒後將會逾時 5 xhr.onreadystatechange = funtion(){ 6       if(request.readyState===4){ 7          //取消逾時處理 8           window.clearTimeout(timeId); 9       }10 };

1.3 跨域通訊:

 

JavaScript之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.