一、簡介
AJAX,一個異步JavaScript和XML的縮略詞,是最近出來的技術詞語。異步意味著你可以經由超文本傳輸協議(HTTP)向一個服務器發出請求并且在等待該響應時繼續處理另外的數據。這就意味著,例如,你可以調用一個服務器端腳本來從一個數據庫中以XML方式檢索數據,把數據發送到存儲在一個數據庫的服務器腳本,或者簡單地裝載一個XML文件以填充你的Web站點而不需刷新該頁面。然而,在這項新技術提供巨大能力的同時,它也引起了在"Back"按鈕問題上的很多爭論。本文將幫助你確定在真實世界中何時使用AJAX是最佳選擇。
首先,我假定你對縮略詞JavaScript和XML部分有一個基本了解。盡管你能通過AJAX請求任何類型的文本文件,但是我在此主要集中討論XML。我將解釋怎樣在真實世界中使用AJAX以及怎樣在一個工程中評估它的價值。在你讀完本文后,你將會明白什么是AJAX,在什么情況下,為什么以及怎樣使用這項技術。你將要學習,在保持給用戶提供直觀體驗的同時怎樣創建對象,發出請求以及定制響應。
我已創建了一個適合于本文的示例工程(你可以下載源代碼)。這個示例實現了一個簡單的請求-它裝載一個包含頁面內容的XML文件并且分析數據以把它顯示在一個HTML頁面中。
二、常規屬性和方法
表1和2提供了一個屬性和方法的概述- 它們為Windows Internet Explorer 5,Mozilla,Netscape 7,Safari 1.2,和Opera等瀏覽器所支持。
表1屬性
屬性 描述
onreadystatechange 當請求對象變化時該事件處理器激活。
readyState 返回指示對象的當前狀態的值。
responseText 來自服務器的響應串的版本 。
responseXML 來自服務器的響應的DOM兼容的文檔對象。
status 來自服務器的響應的 狀態碼。
statusText 以一個字符串形式返回的狀態消息。
表2方法
方法 描述
Abort() 取消當前HTTP請求。
getAllResponseHeaders() 檢索所有的HTTP頭值。
getResponseHeader("headerLabel") 從響應體中檢索一個HTTP頭部的值。
open("method","URL"[,asyncFlag[,"userName" [,"password"]]]) 初始化一個MSXML2.XMLHTTP請求,并從該請求指定方法,URL和認證信息 。
send(content) 發送一個HTTP請求到服務器并接收響應。
setRequestHeader ("label", "value") 指定一個HTTP頭的名字。
三、從哪里開始
首先,你需要創建XML文件-后面我們對之進行請求并作為頁面內容進行分析。你正在請求的文件必須與 目標工程駐留在相同的服務器上。
下一步,創建發出請求的HTML文件。當頁面通過使用頁面主體 中的onload方法進行加載時,該請求發生。接著,該文件需要一個有ID的div標簽,這樣當我們準備好要 顯示內容時就可以對之進行定位。當你做完所有這些,你的頁面的主體上去,如下:
新聞熱點
疑難解答
圖片精選