使用AJAX技術構建更優秀的Web應用程式

來源:互聯網
上載者:User

一、 簡介

非同步JavaScript+XML(即Ajax),是一種建立互動式web應用程式的Web開發技術。這種程式使用JavaScript和XML從用戶端提交伺服器請求,且整個過程中僅需要交換少量的資料而不必提交整個web頁面。因此,這樣的程式將更快和更具響應性,並將成為新一代客戶機-伺服器系統的重要基礎技術之一。你可以在網站http://www.google.com/webhp?complete=1&hl=en處看到一種良好的AJAX實踐技術展示。在此頁面中,如果你把任何字母輸入到文字框內,那麼隨後就會出現一個下拉式清單方塊,其中的內容直接來自於伺服器而不必提交整個頁面。AJAX的核心是XMLHttpRequest對象。用戶端能夠在後台檢索並直接提交XML資料。為了把檢索的XML資料轉換成可產生的HTML內容,需要依賴於用戶端文件物件模型(DOM)讀取XML文檔結點樹並且組成使用者看得見的HTML元素。其實,AJAX並非象HTML,DHTML等一樣的單一技術,它結合了不同的技術:

·XMLHttpRequest對象被使用於與web伺服器非同步地交換資料。

·XML被普遍用作把資料轉送回伺服器的格式(儘管任何格式都能使用,例如普通文本,HTML等)。

·如果使用XML作為轉換格式,那麼DOM通常與如JavaScript這樣的用戶端指令碼語言一起使用來動態地顯示和描述互動資訊。

·XHTML(或HTML),CSS用於標記和資訊格式化。

二、 XMLHttpRequest對象

從曆史來看,是微軟首先在其Internet Explorer 5 for Windows中以一個ActiveX對象形式實現了XMLHttpRequest對象。隨後,由Mozilla工程的工程師實現了Mozilla 1.0(和Netscape 7)的一種相容的本機版本;而稍後,蘋果公司在其Safari 1.2上也實現了相同的工作。其實,在W3C標準的文件物件模型(DOM)Level 3載入與儲存規範中,也提到了類似的功能。現在,它成為一種事實上的標準,並開始在以後發行的大多數瀏覽器中得到實現。

(一) 建立對象

XMLHttpRequest對象的建立方式因瀏覽器不同而有所不同。對於Safari和Mozilla來說,其建立方式如下所示:

var req = new XMLHttpRequest();

對於Internet Explorer 5.0+(指5.0及更高版本),則要把對象名傳遞到ActiveX建構函式中:

var req = new ActiveXObject("Microsoft.XMLHTTP");

該對象的方法控制所有的操作,而其屬性儲存區從伺服器返回的各種資料片斷,例如XMLHttpObject.responseText包含從伺服器返回的xml或字串值。

(二) 方法

在Windows IE 5.0+、Safari 1.2和Mozila中支援的XMLHttpRequest對象的方法列舉如下:

方法 描述
abort() 取消當前的請求。如果你在一個不處理請求(readyState 0或4)的對象上調用它,"神秘的事情"發生了。
getResponseHeader("headerLabel") 返回單個頭標籤的字串值
getAllResponseHeaders() 以一個串形式返回完整的頭(標籤和值)集合
open("method","URL"[,asyncFlag[, "userName"[,"password"]]]) 指派目標URL、方法及一個懸掛請求的其它可選屬性
send(content) 傳輸請求。(可選擇地)其中可以加入可寄送的字串或DOM對象資料
setRequestHeader("label","value") 把一個標籤/值對指派給要發送的請求中的頭部

在上面的方法中,open和send方法是最重要的。下面,讓我們首先從應用程式的觀點來討論open方法。

var req;
………………………
req = new ActiveXObject("Microsoft.XMLHTTP");
……………
var url="AjaxServer.aspx?PubID="+ID;
……………
//開啟一個到URL的GET請求
req.open("GET",url,true);
//實際發送一個空請求
req.send(null);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.