Ajax教程執行個體詳解_AJAX相關

來源:互聯網
上載者:User

什麼是 AJAX

AJAX = Asynchronous JavaScript and XML(非同步 JavaScript 和 XML)。

AJAX 不是新的程式設計語言,而是一種使用現有標準的新方法。

AJAX 是與伺服器交換資料並更新部分網頁的藝術,在不重新載入整個頁面的情況下(AJAX 是一種用於建立快速動態網頁的技術)。

通過在後台與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。

傳統的網頁(不使用 AJAX)如果需要更新內容,必需重載整個網頁面。

XMLHttpRequest 對象

Ajax的核心是JavaScript對象XmlHttpRequest

<script type="text/javascript">function createXHR(){var xhr = null;try {// Firefox, Opera .+, Safari,IE+xhr = new XMLHttpRequest();}catch (e) {// Internet Explorer try {xhr = new ActiveXObject("Msxml.XMLHTTP");}catch (e) {try {xhr = new ActiveXObject("Microsoft.XMLHTTP");}catch (e) {xhr = null;}}}return xhr;}</script> 

XMLHttpRequest對象用法

XMLHttpRequest對象有兩個重要方法 open與send

在使用XMLHttpRequest對象時要調用的第一個方法是open方法,調用方式:XMLHttpRequest.open(“get”,”default.aspx”,true); 這段代碼會針對default.aspx頁面發送get請求,關於這段代碼有三點需要注意:

1. URL是相對於當前頁面的路徑,也可以使用絕對路徑

2. 調用open方法並不會真正的發送請求,而是初始化一個請求準備發送

3. 只能向同一個域中使用相同協議和連接埠的URL發送請求,否則會因為安全原因報錯

要想把請求發往伺服器需要調用send方法,send方法接受一個參數,參數是請求主體要發送的資料,如果不需要發送資料則傳入null,在調用send方法之後請求被發往伺服器,如下

xhr.send(null);

請求發往伺服器,伺服器根據請求產生響應(Response),傳回給XHR對象,在收到響應後相應資料會填充到XHR對象的屬性,有四個相關屬性會被填充:

1. responseText:作為響應主體被返回的文本

2. responseXML:如果響應內容的類型是”text/xml”或”application/xml”,這個屬性將儲存包含著相應資料的XML文檔

3. status:響應的HTTP狀態(200,404,500等)

4. statusText:HTTP狀態說明

onreadystatechange 事件

當請求被發送到伺服器時,我們需要執行一些基於響應的任務。

每當 readyState 改變時,就會觸發 onreadystatechange 事件。

readyState 屬性存有 XMLHttpRequest 的狀態資訊。

下面是 XMLHttpRequest 對象的三個重要的屬性:

在 onreadystatechange 事件中,我們規定當伺服器響應已做好被處理的準備時所執行的任務。

當 readyState 等於 4 且狀態為 200 時,表示響應已就緒:

xmlhttp.onreadystatechange=function(){if (xmlhttp.readyState== && xmlhttp.status==){document.getElementById("myDiv").innerHTML=xmlhttp.responseText;}} 

我們可以在接受響應之前調用abort方法取消非同步請求:XMLHttpRequest .abort();

注意:

在使用XMLHttpRequest對象的send()方法時,如果使用的是get請求或者不需要發送資料的post請求時,需要使用send(null);

如果想要發送資料資料,則需要使用post請求,先使用 setRequestHeader() 來添加 HTTP 頭。然後在 send() 方法中規定您希望發送的資料:

xmlhttp.open("POST","ajax_test.asp",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("fname=Bill&lname=Gates");

以上內容是小編給大家介紹的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.