天天看點

Ajax 基礎

一:什麼是 AJAX ?

AJAX = 異步 JavaScript 和 XML。

AJAX 是一種用于建立快速動态網頁的技術。

通過在背景與伺服器進行少量資料交換,AJAX 可以使網頁實作異步更新。這意味着可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。

XMLHttpRequest 是 AJAX 的基礎。

所有現代浏覽器均支援 XMLHttpRequest 對象(IE5 和 IE6 使用 ActiveXObject)。

XMLHttpRequest 用于在背景與伺服器交換資料。這意味着可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。

二:建立 XMLHttpRequest 對象

所有現代浏覽器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 對象。

建立 XMLHttpRequest 對象的文法:

var iable=new XMLHttpRequest();

老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 對象: variable=new ActiveXObject("Microsoft.XMLHTTP");

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

三:向伺服器發送請求

1.open()方法

用于設定進行異步請求目标的URL,請求方法以及其他參數資訊。

xmlHttp.open("請求的類型 get/post","檔案在伺服器上的位置/Servlet","同步還是異步 false/true",username,password);

2.send()方法

用于向伺服器發送請求,如果請求聲明為異步,該方法将立即傳回,否則将等到接收到響應為止。

xmlHttp.send(content);cotent:用于指定發送的資料,可以是DOM對象的執行個體,輸入流或字元串。如果沒有參數需要傳遞,可以設定為null.

3.setRequestHeader()方法 用于為post請求的HTTP頭設定值。

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

四:XMLHttpRequest對象的常用屬性

(1)onreadystateChange 屬性用于指定狀态改變時所觸發的事件處理器。

在ajax中,每個狀态改變時都會觸發這個事件處理器,通常會調用一個JavaScript函數。

http_request.onreadystatechange=function(){}

(2)readyState 屬性用于擷取請求的狀态,共包括5個屬性值 0:未初始化 1:正在加載      2:已加載        3:互動中       4:完成

(3)responseText 屬性用于擷取伺服器的響應,表示為字元串。

(4)responseXML 屬性用于擷取伺服器的響應,表示為xml.

(5)status屬性用于傳回伺服器的HTTP狀态碼。 200:表示成功        202:表示請求被接受,但尚未成功           400:錯誤的請求          404:檔案未找到              500:内部伺服器錯誤

五:發送ajax發送請求,4步驟:

1.初始化XMLHttpRequest對象。為了提高程式的相容性,需要建立一個跨浏覽器的XMLHttpRequest對象。

2.建立一個與伺服器的連接配接。

3.向伺服器發送請求。

4.為XMLHttpRquest對象指定一個傳回結果處理函數(即回調函數),用于對傳回結果進行處理。

封裝成一個函數:傳一個對象。

繼續閱讀