基于LONWORKS的智能頻率采集節(jié)點設(shè)計
0 引言
AJAX采用異步調(diào)用方式進行局部頁面的刷新,并以瀏覽器為基礎(chǔ)創(chuàng)建多種應用,為用戶提供良好的交互使用體驗。
鑒于AJAX非凡的體驗效果及良好的界面表現(xiàn)力,其不僅受到了業(yè)內(nèi)的青睞和大力追捧,更展現(xiàn)了廣闊的應用及商業(yè)前景。
1.AJAX關(guān)鍵技術(shù)分析
1.1 JavaScript
作為瀏覽器中使用頻率相當高的一種編程語言,JavaScript可以確??蛻舳司W(wǎng)頁內(nèi)容的實時更新。而其在AJAX中主要充當?shù)氖荴MLHttpRequest與DOM二者的樞紐,并借助于XMLHttpRequest屬性值對本地頁面DOM對象進行動態(tài)更新。
1.2 XML
XML,即所謂的可擴展標記語言,同HTML相似,XML也是一種應用標簽進行標記的語言,但用途較HTML而言具有較大的差異。HTML采用可直接閱讀式的格式對數(shù)據(jù)進行顯示,而XML則用來對數(shù)據(jù)進行描述、交換和存儲。
1.3 XMLHttp
XMLHttp是借助于HTTP在VbScript及Javascript等腳本語言中進行XML或其他相關(guān)數(shù)據(jù)的接收或傳輸?shù)囊惶譇PI.XMLHttp主要作用即對網(wǎng)頁部分內(nèi)容進行更新,但無需對整個頁面進行刷新。如今,多數(shù)瀏覽器均能夠支持XMLHttp,在IE中利用ActiveXObject可以進行XMLHttp對象的創(chuàng)建,諸如Opera、Firefox等的瀏覽器可以利用window.XMLHttpRequest進行XMLHttp對象的創(chuàng)建。
1.4 DOM
DOM主要是供HTML及XML等文件使用的一套API.其能夠?qū)ξ募Y(jié)構(gòu)進行表述,并在網(wǎng)頁和程序語言間構(gòu)建起一座溝通的橋梁。開發(fā)人員都是借助于對象對所構(gòu)建或可操作文件的屬性、事件或方法進行展現(xiàn)的,例如,document代表的即文件自身這一對像,table則代表的是HTML表格對象等。此類對象能夠采用多數(shù)瀏覽器中的Script進行取用,并達到顯示或動態(tài)交互的目的。
1.5 XMLHttpRequest
作為AJAX所有技術(shù)中最為關(guān)鍵的技術(shù),XMLHTTPRequest為異步請求提供了支持,在后臺運行過程中,XMLHttPRequest對象利用異步通訊將來自http服務(wù)器的數(shù)據(jù)進行接收和獲取,無需將用戶的操作中斷,同時,層面交互過程利用的是自動和服器來實現(xiàn)的。
2.軟件開發(fā)中AJAX的應用分析
較傳統(tǒng)CS開發(fā)而言,AJAX的開發(fā)過程存在著極大的差異,此類差異也帶來了新的編程方面的問題,最重要的即易用性方面的問題。由于AJAX對于XML及JavaScript具有較強的依賴性,因此,瀏覽器支持標準及其兼容性的重要性正如JavaScript的運行性能一樣。此類問題多數(shù)源自于技術(shù)、瀏覽器及服務(wù)器三者的組合,因此,必須確保此類技術(shù)的應用效果。以下就某案例就AJAX在軟件開發(fā)中的應用進行分析。
WebGIS中應用AJAX時必須遵循Request/Response這一模式,此框架流程如下:對象的初始化→請求的發(fā)送→服務(wù)器的接收→服務(wù)器返回→客戶端的接收→客戶端頁面內(nèi)容的修改。
1)首先是對象的初始化,并進行XMLHttpRequest請求的發(fā)送。
為了確保JavaScript能夠?qū)TTP請求發(fā)送至服務(wù)器端,應采用的是XMLHttp-Request這一對象。不同瀏覽器對于此過程的實現(xiàn)途徑各不相同,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)對所需響應處理函數(shù)進行指定。
對客戶端處理所返回服務(wù)器信息的方式進行指定,其中,處理函數(shù)名可賦于XMLHttpRequest對象相應的onreadystatechange屬性。如http_request.onreadystatechange=processRequest.
3)進行HTTP請求的發(fā)送。待響應處理函數(shù)指定完畢后,即可向服務(wù)器進行HTTP請求的發(fā)送。此步驟采用的是相應的open與send方法。
http_request.open(‘GET','http://www.example.org/some.file',true);http_request.send(null);其中,open首個參數(shù)即為HTTP的請求方法,為Post、Get及Head等。open 第二個參數(shù)即目標URL,第三個參數(shù)指定此請求是否為異步方式。若為True,則異步請求,F(xiàn)alse為同步,默認為True.
4)對服務(wù)器返回信息進行處理。先對XML-HttpRequest對象的Readystate值進行檢查,并對請求狀態(tài)進行判斷。形式如下:
if(http_request.readyState==4){
//信息已返回,開始處理
} else {
// 信息還未返回,繼續(xù)等待
}
當服務(wù)器將信息返回之后,仍需對所返回HTTP的狀態(tài)碼進行判斷,明確所返回頁面是否存在錯誤??稍赪3C官網(wǎng)上查詢到全部狀態(tài)碼。如下所示,200表示頁面是正常的。
if (http_request.status = = 200)
{
// 頁面一切正常,可開始進行信息的
處理
} else {
// 頁面存在問題
對于返回成功的信息,XMLHttpRequest具有如下處理方式:一種是responseText以字符串形式進行使用;另一種是responseXML以XML文檔形式進行使用,可采用DOM進行處理。
由此可見,AJAX在軟件開發(fā)過程中具有十分重要的應用,且隨著各項技術(shù)的不斷成熟,AJAX將在WebGIS平臺內(nèi)部發(fā)揮重要的作用。谷歌所推出的Google Maps中就采用了AJAX技術(shù),此外,雅虎公司Flash/AJAX也充分利用了AJAX技術(shù),以提高用戶的體驗效果。
3.結(jié)語
AJAX技術(shù)將多項技術(shù)融于一體,充分發(fā)揮了各項技術(shù)的功能,并獲得了理想的效果,已成為用戶極為青睞的開發(fā)技術(shù)之一。隨著AJAX技術(shù)的不斷發(fā)展和完善,其在軟件開發(fā)領(lǐng)域必將引領(lǐng)新的潮流。