【摘要】AJAX技術整合了XML、DOM及Javascript等多種技術,并充分發揮了各項技術,因而如今已經發展成為深受廣大用戶青睞的軟件開發技術,并獲得了良好的用戶體驗。本文重點針對AJAX的原理及其關鍵技術進行了分析,并就其在軟件開發中的應用進行了探討。
【關鍵詞】AJAX關鍵技術;軟件開發;應用
AJAX采用異步調用方式進行局部頁面的刷新,并以瀏覽器為基礎創建多種應用,為用戶提供良好的交互使用體驗。鑒于AJAX非凡的體驗效果及良好的界面表現力,其不僅受到了業內的青睞和大力追捧,更展現了廣闊的應用及商業前景。
1.AJAX關鍵技術分析
1.1 JavaScript
作為瀏覽器中使用頻率相當高的一種編程語言,JavaScript可以確保客戶端網頁內容的實時更新。而其在AJAX中主要充當的是XMLHttpRequest與DOM二者的樞紐,并借助于XMLHttpRequest屬性值對本地頁面DOM對象進行動態更新。
1.2 XML
XML,即所謂的可擴展標記語言,同HTML相似,XML也是一種應用標簽進行標記的語言,但用途較HTML而言具有較大的差異。HTML采用可直接閱讀式的格式對數據進行顯示,而XML則用來對數據進行描述、交換和存儲。
1.3 XMLHttp
XMLHttp是借助于HTTP在VbScript及Javascript等腳本語言中進行XML或其他相關數據的接收或傳輸的一套API。XMLHttp主要作用即對網頁部分內容進行更新,但無需對整個頁面進行刷新。如今,多數瀏覽器均能夠支持XMLHttp,在IE中利用ActiveXObject可以進行XMLHttp對象的創建,諸如Opera、Firefox等的瀏覽器可以利用window.XMLHttpRequest進行XMLHttp對象的創建。
1.4 DOM
DOM主要是供HTML及XML等文件使用的一套API。其能夠對文件結構進行表述,并在網頁和程序語言間構建起一座溝通的橋梁。開發人員都是借助于對象對所構建或可操作文件的屬性、事件或方法進行展現的,例如,document代表的即文件自身這一對像,table則代表的是HTML表格對象等。此類對象能夠采用多數瀏覽器中的Script進行取用,并達到顯示或動態交互的目的。
1.5 XMLHttpRequest
作為AJAX所有技術中最為關鍵的技術,XMLHTTPRequest為異步請求提供了支持,在后臺運行過程中,XMLHttPRequest對象利用異步通訊將來自http服務器的數據進行接收和獲取,無需將用戶的操作中斷,同時,層面交互過程利用的是自動和服器來實現的。
2.軟件開發中AJAX的應用分析
較傳統CS開發而言,AJAX的開發過程存在著極大的差異,此類差異也帶來了新的編程方面的問題,最重要的即易用性方面的問題。由于AJAX對于XML及JavaScript具有較強的依賴性,因此,瀏覽器支持標準及其兼容性的重要性正如JavaScript的運行性能一樣。此類問題多數源自于技術、瀏覽器及服務器三者的組合,因此,必須確保此類技術的應用效果。以下就某案例就AJAX在軟件開發中的應用進行分析。
WebGIS中應用AJAX時必須遵循Request/Response這一模式,此框架流程如下:對象的初始化→請求的發送→服務器的接收→服務器返回→客戶端的接收→客戶端頁面內容的修改。
1)首先是對象的初始化,并進行XML-HttpRequest請求的發送。
為了確保JavaScript能夠將HTTP請求發送至服務器端,應采用的是XMLHttp-Request這一對象。不同瀏覽器對于此過程的實現途徑各不相同,IE采用ActiveX控件形式進行提供,Mozilla等瀏覽器采用的是XMLHttpRequest形式。
if(window.XMLHttpRequest){// Mozilla, Safari, ...
http_request=new XMLHttp Request();
}
else if(window.ActiveXObject){//IE
http_request=new ActiveXObject (\"Microsoft.XMLHTTP\");
}
2)對所需響應處理函數進行指定。
對客戶端處理所返回服務器信息的方式進行指定,其中,處理函數名可賦于XMLHttpRequest對象相應的onreadystate change屬性。如http_request.onreadystatechange=processRequest。
3)進行HTTP請求的發送。待響應處理函數指定完畢后,即可向服務器進行HTTP請求的發送。此步驟采用的是相應的open與send方法。
http_request.open('GET','http://www.example.org/some.file',true);
http_request.send(1);
其中,open首個參數即為HTTP的請求方法,為Post、Get及Head等。open 第二個參數即目標URL,第三個參數指定此請求是否為異步方式。若為True,則異步請求,False為同步,默認為True。
4)對服務器返回信息進行處理。先對XML-HttpRequest對象的Readystate值進行檢查,并對請求狀態進行判斷。形式如下:
if(http_request.readyState==4){
//信息已返回,開始處理
} else {
// 信息還未返回,繼續等待
}
當服務器將信息返回之后,仍需對所返回HTTP的狀態碼進行判斷,明確所返回頁面是否存在錯誤。可在W3C官網上查詢到全部狀態碼。如下所示,200表示頁面是正常的。
if (http_request.status = = 200) {
// 頁面一切正常,可開始進行信息的處理
} else {
// 頁面存在問題
對于返回成功的信息,XMLHttpRequest具有如下處理方式:一種是responseText以字符串形式進行使用;
另一種是responseXML以XML文檔形式進行使用,可采用DOM進行處理。
由此可見,AJAX在軟件開發過程中具有十分重要的應用,且隨著各項技術的不斷成熟,AJAX將在WebGIS平臺內部發揮重要的作用。谷歌所推出的Google Maps中就采用了AJAX技術,此外,雅虎公司Flash/AJAX也充分利用了AJAX技術,以提高用戶的體驗效果。
3.結語
AJAX技術將多項技術融于一體,充分發揮了各項技術的功能,并獲得了理想的效果,已成為用戶極為青睞的開發技術之一。隨著AJAX技術的不斷發展和完善,其在軟件開發領域必將引領新的潮流。
參考文獻
[1]向春,沈建新.AJAX核心技術解析[J].機械制造與自動化,2011(2):48-52.
[2]萬建成,盧雷.軟件體系結構的原理、組成與應用[M].北京:科學出版社,2009.
[3]張振國,楊柯.基于J2EE的通信工程管理信息系統[J].計算機工程與科學,2008,30(8):147-149.