資源描述:
《基于dwr框架快速開發(fā)ajax應(yīng)用程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、基于DWR框架快速開發(fā)AJAX應(yīng)用程序摘要:ajax,一個(gè)異步j(luò)avascript和xml的縮略詞,是當(dāng)今快速發(fā)展的web開發(fā)界中十分熱門的技術(shù)。本文首先分析了傳統(tǒng)web技術(shù)目前所遇到的一些問(wèn)題,然后介紹了ajax的基本概念、相關(guān)技術(shù)和優(yōu)點(diǎn),最后介紹如何利用一個(gè)ajax框架(dwr)快速構(gòu)造一個(gè)ajax應(yīng)用程序。關(guān)鍵詞:ajax1概述近年來(lái)隨著internet的迅速發(fā)展,基于各種技術(shù)的網(wǎng)絡(luò)應(yīng)用程序廣泛應(yīng)用于人們的生活中。b/s架構(gòu)由于零部署,易升級(jí),操作簡(jiǎn)單等巨大優(yōu)勢(shì),迅速成為企業(yè)應(yīng)用軟件系統(tǒng)架構(gòu)的主流。然而在過(guò)去幾年中,人們?cè)诜?/p>
2、務(wù)器端的開發(fā)投入了大量的精力,各種成熟的開發(fā)框架以及開發(fā)技術(shù)的不斷出現(xiàn),使得web應(yīng)用程序在性能等方面有了很大的提高。然而web用戶界面對(duì)響應(yīng)靈敏方面卻投入不足。在傳統(tǒng)的web應(yīng)用采用同步交互過(guò)程中,用戶首先向http服務(wù)器發(fā)送一個(gè)請(qǐng)求。然后服務(wù)器執(zhí)行某些任務(wù),再向發(fā)出請(qǐng)求的用戶返回一個(gè)html頁(yè)面。這是一種不連貫的用戶體驗(yàn),服務(wù)器在處理請(qǐng)求的時(shí)候,用戶多數(shù)時(shí)間處于等待的狀態(tài)。當(dāng)軟件設(shè)計(jì)越來(lái)越講究人性化的時(shí)候,這種用戶體驗(yàn)簡(jiǎn)直與這種原則背道而馳。隨著ajax技術(shù)的出現(xiàn),使得web應(yīng)用可以為用戶提供更加自然、靈敏的瀏覽體驗(yàn)。2aja
3、x技術(shù)體系2.1ajax的相關(guān)概念ajax這個(gè)概念的最早提出者jessejamesgarrett認(rèn)為:ajax是asynchronousjavascriptandxml(異步j(luò)avascript和xml)的縮寫[1]。其中異步意味著你可以經(jīng)由http協(xié)議向一個(gè)服務(wù)器發(fā)出請(qǐng)求并且在等待該響應(yīng)時(shí)繼續(xù)處理另外的數(shù)據(jù)。ajax并不是一門新的語(yǔ)言或技術(shù),它實(shí)際上是幾項(xiàng)技術(shù)按一定的方式組合,在共同的協(xié)作中發(fā)揮各自的作用。它包括以下技術(shù):javascript、xhtml和css、dom、xml和xslt、xmlhttprequest。其中:使用
4、xhtml和css標(biāo)準(zhǔn)化呈現(xiàn),使用dom實(shí)現(xiàn)動(dòng)態(tài)顯示和交互,使用xml和xslt進(jìn)行數(shù)據(jù)交換與處理,使用xmlhttprequest對(duì)象同服務(wù)器進(jìn)行異步數(shù)據(jù)讀取,最后用javascript綁定和處理所有數(shù)據(jù)[2]。下圖1為ajaxweb應(yīng)用模型。2.2ajax的交互過(guò)程與傳統(tǒng)的web應(yīng)用不同,ajax采用異步交互過(guò)程,使用戶從請(qǐng)求/響應(yīng)的循環(huán)中解脫出來(lái)。ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了中間層即ajax引擎,使用戶操作與服務(wù)器響應(yīng)異步化。從而消除了網(wǎng)絡(luò)交互過(guò)程中的處理-等待-處理缺點(diǎn)。用戶的瀏覽器在執(zhí)行任務(wù)時(shí)即裝載了a
5、jax引擎。ajax引擎,實(shí)際上是一個(gè)比較復(fù)雜的javascript應(yīng)用程序,它負(fù)責(zé)編譯用戶界面及與服務(wù)器之間的交互。ajax引擎允許用戶與應(yīng)用軟件之間的交互過(guò)程異步進(jìn)行,獨(dú)立于用戶與網(wǎng)絡(luò)服務(wù)器間的交流?,F(xiàn)在可以用javascript調(diào)用ajax引擎來(lái)代替產(chǎn)生一個(gè)http的用戶動(dòng)作,內(nèi)存中的數(shù)據(jù)編輯、頁(yè)面導(dǎo)航、數(shù)據(jù)校驗(yàn)這些不需要重新載入整個(gè)頁(yè)面的需求可以交給ajax來(lái)執(zhí)行[3]。ajax實(shí)質(zhì)上也是遵循request/server模式,所以基本上的流程是:對(duì)象初始化,發(fā)送請(qǐng)求,服務(wù)器接收,服務(wù)器返回,客戶端接收,修改客戶端頁(yè)面內(nèi)容。
6、只不過(guò)這個(gè)過(guò)程是異步的,下圖2為ajax異步交互過(guò)程。2.3ajax技術(shù)的優(yōu)點(diǎn)ajax的出現(xiàn),揭開了無(wú)刷新更新頁(yè)面時(shí)代的序幕,實(shí)現(xiàn)了web瀏覽器技術(shù)中大量的尚未實(shí)現(xiàn)的潛力。ajax尤其適用于交互較多,頻繁讀數(shù)據(jù),數(shù)據(jù)分類良好的web應(yīng)用。它在應(yīng)用中主要具有以下優(yōu)點(diǎn):①ajax的原則是“按需取數(shù)據(jù)”,所以減少了冗余數(shù)據(jù)請(qǐng)求和響應(yīng)對(duì)服務(wù)器造成的負(fù)擔(dān)。②無(wú)刷新更新頁(yè)面,減少用戶實(shí)際和心理等待時(shí)間。③ajax使web中的界面與應(yīng)用分離,這樣有利于頁(yè)面的開發(fā)和維護(hù)。④使用ajax可以把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的
7、處理能力來(lái)處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),節(jié)約空間和帶寬租用成本。⑤ajax具有更好的用戶體驗(yàn),也可以調(diào)用外部數(shù)據(jù)。⑥基于標(biāo)準(zhǔn)化的并被廣泛支持和技術(shù),并且不需要插件或下載小程序。3結(jié)合dwr開發(fā)ajax程序3.1dwr基本概念dwr(directwebremoting)項(xiàng)目是apache的一個(gè)開源的解決方案,它包含服務(wù)器端java庫(kù)、一個(gè)dwrservlet以及javascript庫(kù)。dwr是一個(gè)引擎,可以把服務(wù)器端java對(duì)象的方法公開給javascript代碼。使用dwr可以有效地從應(yīng)用程序代碼中把a(bǔ)jax的全部請(qǐng)求-響應(yīng)循環(huán)消
8、除掉。這意味著客戶端代碼再也不需要直接處理xmlhttprequest對(duì)象或者服務(wù)器的響應(yīng),不再需要編寫對(duì)象的序列化代碼或者使用第三方工具才能把對(duì)象變成xml,甚至不再需要編寫servlet代碼把a(bǔ)jax請(qǐng)求調(diào)整成對(duì)java對(duì)象的調(diào)用。dwr是作為