當前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于Ajax技術(shù)的Web 2.0開發(fā)應(yīng)用

0  引言

隨著互聯(lián)網(wǎng)的不斷發(fā)展和信息量的劇增,如何使Web響應(yīng)更加靈敏,數(shù)據(jù)傳輸更加快捷,已成為當今關(guān)注的熱點。應(yīng)用系統(tǒng)所采用的技術(shù)也由早期的C/S(Client/Server)模式向基于B/S(Browser/Server)的應(yīng)用模式進行轉(zhuǎn)變。這種轉(zhuǎn)變避免了繁瑣的部署工作,同時也體現(xiàn)了瘦客戶的開發(fā)理念,但同步交互方式帶來客戶端響應(yīng)速度慢的問題始終困擾著最終用戶?;贏jax(Asynchronous JavaScript. and XML)的Web 2.0技術(shù)改變原有的同步交互為異步交互方式,使頁面在后臺按需獲取數(shù)據(jù),這樣不僅節(jié)省了帶寬,更加大大提升了用戶體驗。

Ajax是新興網(wǎng)絡(luò)開發(fā)技術(shù)的象征,是Web 2.0時代的代表。最關(guān)鍵的是顛覆了傳統(tǒng)Web與服務(wù)器的交互模式,這種思維模式的轉(zhuǎn)變?yōu)閃eb發(fā)展提供了更廣闊的前景。Ajax是一個前臺工具,在后臺可以使用各種服務(wù)器語言,比如:.NET,PHP,Java等。Ajax是集合了多種技術(shù),提高互聯(lián)網(wǎng)性能的一種關(guān)鍵技術(shù)。Ajax理念的出現(xiàn),揭開了無刷新更新頁面時代的序幕,并有代替?zhèn)鹘y(tǒng)Web開發(fā)中采用form(表單)遞交方式更新Web頁面的趨勢,其可以算是一個里程碑。

1 Ajax的工作原理

在傳統(tǒng)的瀏覽器與服務(wù)器的交互方式中“采用同步方式”由用戶觸發(fā)一個HTTP請求到服務(wù)器,服務(wù)器對其進行處理后再返回一個新的Web頁到瀏覽器。每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請求,應(yīng)用的響應(yīng)時間就依賴于服務(wù)器的響應(yīng)時間。當服務(wù)器正在處理的時候,用戶只是在等待,這樣,不會產(chǎn)生很好的用戶體驗;而在前后兩個頁面中的大部分HTML代碼往往是相同的,也浪費了許多帶寬資源。

現(xiàn)在使用的Ajax技術(shù)是將幾種成熟技術(shù)按一定的方式結(jié)合在一起,通過協(xié)作發(fā)揮各自作用,包括:使用XHTML和CSS標準化呈現(xiàn);使用DOM實現(xiàn)動態(tài)顯示和交互;使用XML和XSLT進行數(shù)據(jù)交換與處理;使用XMLHttpRequest進行異步數(shù)據(jù)讀??;用JavaS-cript綁定和處理所有數(shù)據(jù)。

Ajax需要一個穩(wěn)定、響應(yīng)及時的服務(wù)器向引擎發(fā)送內(nèi)容,作為必要的服務(wù)端處理邏輯,確保向Ajax引擎發(fā)送的數(shù)據(jù)格式是正確的。

Ajax的工作原理相當于在用戶和服務(wù)器之間加了一個中間層Ajax引擎,從而實現(xiàn)用戶操作與服務(wù)器響應(yīng)的異步化。這樣把以前的一些服務(wù)器負擔的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔,從而達到節(jié)約ISP的空間及帶寬租用成本的目的。但并不是所有的用戶請求都提交給服務(wù)器,像一些數(shù)據(jù)驗證和數(shù)據(jù)處理等都交給Ajax引擎自己來做,只有確定需要從服務(wù)器讀取新數(shù)據(jù)時再由Ajax引擎代為向服務(wù)器提交請求。傳統(tǒng)的Web應(yīng)用程序模型和基于Ajax的Web應(yīng)用模型分別如圖1,圖2所示。

rc="/21ic_image/embed/file/201202/4f1962dbe86a47b211e616f58edef37d.jpg" alt="" />

由于Ajax技術(shù)的結(jié)構(gòu)特點,可以為ISP、開發(fā)人員、終端用戶帶來可見的便捷:

(1)按需獲取數(shù)據(jù)。這是Ajax的根本理念,Ajax的原則是“按需取數(shù)據(jù)”,這樣可以最大程度地減輕冗余請求,減輕服務(wù)器的負擔。

(2)無刷新更新頁面,減少用戶心理和實際的等待時間。這是Ajax最大的特點,用戶無需刷新頁面便可向服務(wù)器傳輸和讀寫數(shù)據(jù)。

(3)基于標準化的并被廣泛支持的技術(shù)。Ajax包含的技術(shù)都是各自領(lǐng)域強有力的技術(shù),組合之后的功能更加強大。

(4)給用戶帶來更好的體驗。Ajax使得在Web上運行軟件的感受,越來越接近于本機上運行的效果。

(5)可以調(diào)用外部數(shù)據(jù),取得足夠權(quán)限后,能輕易地實現(xiàn)數(shù)據(jù)聚合。

(6)進一步促進頁面呈現(xiàn)與數(shù)據(jù)的分離。

2  Ajax技術(shù)在Web 2.0中的應(yīng)用

下面簡要介紹利用Ajax技術(shù)的無需頁面提交而能與服務(wù)器交互,即時從服務(wù)器獲取數(shù)據(jù)并顯示出來的特性,實現(xiàn)自動完成(字典)功能的過程。自動完成功能實現(xiàn)的主要目的是幫助用戶快速準確的輸入內(nèi)容,就是用戶在輸入框中輸入一些檢索詞,根據(jù)用戶所輸入的信息,從后臺數(shù)據(jù)庫以LIKE方式查詢,同時在輸入框下方顯示相應(yīng)的提示信息,進而幫助用戶快速的搜索。在很多系統(tǒng)中都需要實現(xiàn)自動完成的功能,但在Ajax技術(shù)出現(xiàn)之前,一般只有桌面應(yīng)用程序才能實現(xiàn)類似的功能。Web應(yīng)用程序只能借助于瀏覽器自身的自動完成功能來實現(xiàn),而瀏覽器的自動完成功能是比較有限的,它只能提示用戶輸入過的信息。如果自動完成的數(shù)據(jù)是來自于服務(wù)器端的,Ajax則是最好的選擇。比如用戶只記住了要查詢信息的前面幾個字,而記不清全名,這樣要查詢到所要的信息就比較困難。使用Ajax技術(shù)后,在用戶輸入的同時,輸入框下方可以給出與已輸入信息相匹配的提示來輔助用戶輸入,這樣用戶進行查詢的速度和準確率會大大提高,也可以有效地改善用戶體驗。下面利用Ajax(.net)技術(shù)實現(xiàn)一個學校信息查詢的自動完成功能,其步驟如下:

服務(wù)器端提供GetSearchItems方法給客戶端,用來返回滿足條件的列表;

客戶端的輸入框需要增加onkeydown響應(yīng)函數(shù),以便即時獲得滿足條件的列表;

通過客戶端的JavaScript動態(tài)列出待選結(jié)果的列表,同時還要提供鍵盤和鼠標的響應(yīng)。

在服務(wù)器端添加供客戶端調(diào)用的GetSearchItems方法是:在服務(wù)器端函數(shù)GetSearchItems的定義前加上[AjaxMethod()]標記,以表明它可以被客戶端異步的調(diào)用。具體代碼如下所示:

(1)服務(wù)器端代碼設(shè)置如下:

該方法用于查詢數(shù)據(jù)庫,最后返回一個ArrayList對象,他將包含所有以用戶輸入字符串開頭的所有學校名稱的條目。

(2)客戶端處理的部分代碼

客戶端相對于服務(wù)器端處理要復(fù)雜得多,要根據(jù)服務(wù)器端返回的ArrayList對象展示結(jié)果,此處用JavaScript和DOM創(chuàng)建一個新的div,將ArrayList中的每一條目都作為其子節(jié)點加入到div中,而每一個條目也被看作是一個div,具體的文本內(nèi)容則是一個span對象。

rc="/21ic_image/embed/file/201202/ccbaa97ff5a679e352fb48454c6789e1.jpg" alt="" />

3結(jié)  語

利用Ajax技術(shù),開發(fā)人員可以創(chuàng)建一個與桌面應(yīng)用程序相媲美的交互式用戶界面。Ajax使Web中的界面與應(yīng)用分離(也可以說是數(shù)據(jù)與呈現(xiàn)分離),而在以前兩者是沒有清晰界限的,數(shù)據(jù)與呈現(xiàn)的分離,有利于分工合作、減少非技術(shù)人員對頁面的修改造成Web應(yīng)用程序的錯誤,提高效率,也更加適用于現(xiàn)在的發(fā)布系統(tǒng),也可以把以前一些服務(wù)器負擔的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的處理能力來處理。Ajax技術(shù)的出現(xiàn)將基于Web的應(yīng)用程序開發(fā)帶進了一個全新的階段,但Ajax主要是基于JavaScript的客戶端技術(shù),所以客戶端的開發(fā)顯得越來越臃腫,隨之而來的安全性等一系列問題有待進一步研究。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉