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