資源描述:
《ajax技術(shù)開發(fā)應(yīng)用程序?qū)崙?zhàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、AJAX技術(shù)開發(fā)應(yīng)用程序?qū)崙?zhàn)dplicn=AJAX技術(shù)開發(fā)應(yīng)用程序?qū)崙?zhàn)AJAX,一個異步JavaScript和XML的縮略詞,是當(dāng)今快速發(fā)展的Web開發(fā)界十分熱門的技術(shù)。在這項新技術(shù)提供巨大能力的同時,它也燃發(fā)了在"Back"按鈕問題上的不容置疑的爭論。本文作者將向你解釋怎樣在真實世界中使用AJAX以及怎樣在一個工程中評估它的價值。在你讀完本文后,你就會明白什么是AJAX,在什么情況下,為什么以及怎樣使用這項技術(shù)。 一、簡介 AJAX,一個異步JavaScript和XML的縮略詞,是最近出來的技術(shù)詞語。異步意味著
2、你可以經(jīng)由超文本傳輸協(xié)議(HTTP)向一個服務(wù)器發(fā)出請求并且在等待該響應(yīng)時繼續(xù)處理另外的數(shù)據(jù)。這就意味著,例如,你可以調(diào)用一個服務(wù)器端腳本來從一個數(shù)據(jù)庫中以XML方式檢索數(shù)據(jù),把數(shù)據(jù)發(fā)送到存儲在一個數(shù)據(jù)庫的服務(wù)器腳本,或者簡單地裝載一個XML文件以填充你的Web站點而不需刷新該頁面。然而,在這項新技術(shù)提供巨大能力的同時,它也引起了在"Back"按鈕問題上的很多爭論。本文將幫助你確定在真實世界中何時使用AJAX是最佳選擇?! ∈紫?,我假定你對縮略詞JavaScript和XML部分有一個基本了解。盡管你能通過AJAX請求
3、任何類型的文本文件,但是我在此主要集中討論XML。我將解釋怎樣在真實世界中使用AJAX以及怎樣在一個工程中評估它的價值。在你讀完本文后,你將會明白什么是AJAX,在什么情況下,為什么以及怎樣使用這項技術(shù)。你將要學(xué)習(xí),在保持給用戶提供直觀體驗的同時怎樣創(chuàng)建對象,發(fā)出請求以及定制響應(yīng)。 我已創(chuàng)建了一個適合于本文的示例工程(你可以下載源代碼)。這個示例實現(xiàn)了一個簡單的請求-它裝載一個包含頁面內(nèi)容的XML文件并且分析數(shù)據(jù)以把它顯示在一個HTML頁面中?! 《⒊R?guī)屬性和方法 表1和2提供了一個屬性和方法的概述-它們?yōu)閃i
4、ndowsInternetExplorer5,Mozilla,Netscape7,Safari1.2,和Opera等瀏覽器所支持?! ”?屬性屬性描述onreadystatechange當(dāng)請求對象變化時該事件處理器激活。readyState返回指示對象的當(dāng)前狀態(tài)的值。responseText來自服務(wù)器的響應(yīng)串的版本。responseXML來自服務(wù)器的響應(yīng)的DOM兼容的文檔對象。status來自服務(wù)器的響應(yīng)的狀態(tài)碼。statusText以一個字符串形式返回的狀態(tài)消息?! ”?方法方法描述Abort()取消當(dāng)前HTTP請
5、求。getAllResponseHeaders()檢索所有的HTTP頭值。getResponseHeader("headerLabel")從響應(yīng)體中檢索一個HTTP頭部的值。open("method","URL"[,asyncFlag[,"userName"[,"password"]]])初始化一個MSXML2.XMLHTTP請求,并從該請求指定方法,URL和認(rèn)證信息。send(content)發(fā)送一個HTTP請求到服務(wù)器并接收響應(yīng)。setRequestHeader("label","value")指定一個HTTP頭
6、的名字。 三、從哪里開始 首先,你需要創(chuàng)建XML文件-后面我們對之進(jìn)行請求并作為頁面內(nèi)容進(jìn)行分析。你正在請求的文件必須與目標(biāo)工程駐留在相同的服務(wù)器上?! ∠乱徊?,創(chuàng)建發(fā)出請求的HTML文件。當(dāng)頁面通過使用頁面主體中的onload方法進(jìn)行加載時,該請求發(fā)生。接著,該文件需要一個有ID的div標(biāo)簽,這樣當(dāng)我們準(zhǔn)備好要顯示內(nèi)容時就可以對之進(jìn)行定位。當(dāng)你做完所有這些,你的頁面的主體看上去如下:<bodyonload="makeRequest('xml/content.xml');"><divid="copy"></div
7、></body>四、創(chuàng)建請求對象 為了創(chuàng)建請求對象,你必須檢查是否瀏覽器使用XMLHttpRequest或ActiveXObject。這兩個對象之間的主要區(qū)別在于使用它們的瀏覽器。WindowsIE5及以上版本使用ActiveX對象;而Mozilla,Netscape7,Opera和Safari1.2及以上版本使用XMLHttpRequest對象。另外一個區(qū)別是你創(chuàng)建對象的方式:Opera,Mozilla,Netscape和Safari允許你簡單地調(diào)用該對象的構(gòu)造器,但是WindowsIE需要把對象的名字傳遞到Ac
8、tiveX構(gòu)造器中。下面是怎樣創(chuàng)建代碼來決定要使用哪個對象和怎樣創(chuàng)建它的示例:if(window.XMLHttpRequest){request=newXMLHttpRequest();}elseif(window.ActiveXObject){request=newActiveXObject("MSXML2.XMLHTTP");} 五、發(fā)出