AJAX(一、基本知識)

來源:互聯網
上載者:User

標籤:active   分享   沒有   ima   amp   javascrip   btn   基於   opera   

AJAX:Asynchronous ([?‘s??kr?n?s; e?-])Javascript ([‘d?ɑ:v?,skr?pt])and XML 非同步Javascript和XML
AJAX不是新的程式設計語言,而是一種使用現有標準的新方法

百度百科解釋:

AJAX是指一種建立互動式網頁應用的網頁開發技術,中文名:阿賈克斯
AJAX = 非同步 Javascript和XML(標準通用標記語言 (SGML)的子集)。AJAX 是一種用於建立快速動態網頁的技術。通過在後台與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。傳統的網頁(不使用 AJAX)如果需要更新內容,必須重載整個網頁頁面。 AJAX的基礎:XMLHttpRequest1.建立XMLHttpRequest對象:
variable=new XMLHttpRequest();

 

但是老版本的IE5、IE6使用ActiveX對象:

variable=new ActiveXObject("Microsoft.XMLHTTP"); 

 

因此為了適應所有的瀏覽器,包括 IE5 和 IE6,請檢查瀏覽器是否支援 XMLHttpRequest 對象。如果支援,則建立 XMLHttpRequest 對象。如果不支援,則建立 ActiveXObject :

var xmlhttp;if (window.XMLHttpRequest)  {// code for IE7+, Firefox, Chrome, Opera, Safari  xmlhttp=new XMLHttpRequest();  }else  {// code for IE6, IE5  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  }

2.XMLHttpRequest對象用於和伺服器交換資料

如果需要將請求發送到伺服器,我們使用XMLHttpRequest對象的open()和send()方法:

open(method,url,async

規定請求的類型,URL 以及是否非同步處理請求。

  • method:請求的類型;GET 或 POST
  • url:檔案在伺服器上的位置
  • async:true(非同步)或 false(同步)

send(string)

將請求發送到伺服器。

  • string:僅用於 POST 請求
GET 還是 POST?

與 POST 相比,GET 更簡單也更快,並且在大部分情況下都能用。

然而,在以下情況中,請使用 POST 請求:

  • 無法使用快取檔案(補救伺服器上的檔案或資料庫)
  • 向伺服器發送大量資料(POST 沒有資料量限制)
  • 發送包含未知字元的使用者輸入時,POST 比 GET 更穩定也更可靠

下面是ajax請求本地.txt檔案的全部代碼:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>ajax請求本地.txt檔案</title>    <script>        window.onload = function () {            var btn = document.getElementById(‘btn‘);            btn.onclick = function () {                //建立XHR對象                var xhr = new XMLHttpRequest();                //請求的方式,地址,是否非同步 test.txt和該html檔案在同一級目錄                xhr.open(‘get‘, ‘test.txt‘, true);                //請求的確定操作,初始化,相當於搜尋時,敲擊的斷行符號                xhr.send(null);                //請求的readyState每變化一次就執行一次onreadystatechange函數                //其中readyState表示的是:請求/響應過程的當前活動階段                //readyState有如下取值                /*                 *   0:未初始化,尚未調用send()方法                 *   1: 啟動                 *   2:發送                 *   3:接收                 *   4:完成                 */                xhr.onreadystatechange = function () {                    if (xhr.readyState == 4 && xhr.status==200) {                        alert(xhr.responseText);                    }                }            };        };    </script></head><body><input type="button" id="btn" value="click"></body></html>

效果:

3.AJAX——伺服器響應

如需獲得來自伺服器的響應,請使用 XMLHttpRequest 對象的 responseText 或 responseXML 屬性

responseText:獲得字串形式的響應資料。

responseXML:獲得 XML 形式的響應資料。

如果來自伺服器的響應並非 XML,請使用 responseText 屬性。responseText 屬性返回字串形式的響應,因此可以這樣使用:

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

4.AJAX - onreadystatechange 事件

當請求被發送到伺服器時,我們需要執行一些基於響應的任務。每當 readyState 改變時,就會觸發 onreadystatechange 事件。readyState 屬性存有 XMLHttpRequest 的狀態資訊:

onreadystatechange:儲存函數(或函數名),每當 readyState 屬性改變時,就會調用該函數。

readyState:

       存有 XMLHttpRequest 的狀態。從 0 到 4 發生變化。

  •  0: 請求未初始化
  •  1: 伺服器串連已建立
  •  2: 請求已接收
  •  3: 請求處理中
  •  4: 請求已完成,且響應已就緒

status:  200: "OK"     404: 未找到頁面

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

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

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

 

上面就是最基礎的AJAX使用方法。


 

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.