資源描述:
《基于ajax的高級(jí)web應(yīng)用程序開(kāi)發(fā)技術(shù)研究new》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、基于AJAX的高級(jí)Web應(yīng)用程序開(kāi)發(fā)技術(shù)研究- 1AJAX簡(jiǎn)介 1.1AJAX定義 異步j(luò)avascript和XML(Asynchronousjavascriptand,XML,AJAX)是多種技術(shù)的綜合,包括javascript,XHTML和CSS,DOM,XML和XSTL,XMLHttpRequest。其特點(diǎn)是:使用XHTML和CSS標(biāo)準(zhǔn)化呈現(xiàn);使用DOM實(shí)現(xiàn)動(dòng)態(tài)顯示和交互;使用XML和XSTL進(jìn)行數(shù)據(jù)交換與處理;使用XMLHttpRequest進(jìn)行異步數(shù)據(jù)讀取;最后用javascript綁定和處理所有數(shù)據(jù)?! ?.2AJAX的工作原理 與傳
2、統(tǒng)的Web應(yīng)用不同,AJAX采用異步交互過(guò)程。AJAX在用戶與服務(wù)器之間引入一個(gè)中間媒介,從而消除了網(wǎng)絡(luò)交互過(guò)程中的處理-等待-處理-等待的缺點(diǎn)。用戶的瀏覽器在執(zhí)行任務(wù)時(shí)即裝載了AJAX引擎。AJAX引擎主要用javascript語(yǔ)言編寫(xiě),通常藏在一個(gè)隱藏的框架中。它負(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請(qǐng)求的用戶動(dòng)作,內(nèi)存中的數(shù)據(jù)編輯、數(shù)據(jù)校驗(yàn)這些不需要重新載入整個(gè)頁(yè)面的需求可以交給AJAX執(zhí)行。
3、AJAX最核心的理念是,傳統(tǒng)應(yīng)用中的瀏覽器直接與服務(wù)器交互,現(xiàn)在中間夾了一層Script。也就是說(shuō),原來(lái)的Browser-Server架構(gòu),現(xiàn)在是Browser-Ajax引擎Server。假如是純粹的AJAX應(yīng)用,瀏覽器只向AJAX引擎發(fā)送消息,AJAX引擎使用XmlHttpRequest向服務(wù)器發(fā)送請(qǐng)求,然后服務(wù)器在XmlHttpRequest的回復(fù)中帶上相關(guān)消息,最后AJAX引擎分析這些消息,用HTMLDOM模型處理界面。如此,理論上可以完全消除按頁(yè)刷新的需要。由于存在這樣一個(gè)在后臺(tái)的通信機(jī)制,原有開(kāi)發(fā)Web程序時(shí)碰到的問(wèn)題自然內(nèi)部迎刃而解。最重要的是,
4、使用了AJAX框架不會(huì)與原有開(kāi)發(fā)模型相沖突,如果處理得當(dāng)AJAX的優(yōu)勢(shì)將顯而易見(jiàn),加上兼容性,一定會(huì)使它有機(jī)會(huì)在Web領(lǐng)域中占一席之地?! ?.3AJAX的優(yōu)點(diǎn) 與傳統(tǒng)的Web服務(wù)相比,AJAX具有明顯的優(yōu)勢(shì):減輕了服務(wù)器的負(fù)擔(dān)。因?yàn)锳JAX的根本理念是“按需取數(shù)據(jù)”,所以最大可能在減少了冗余請(qǐng)求和響應(yīng)對(duì)服務(wù)器造成的負(fù)擔(dān);非整頁(yè)地刷新、更新頁(yè)面,減少用戶實(shí)際和心理等待時(shí)間;更好的用戶體驗(yàn);也可以把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來(lái)處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),節(jié)約空間和帶寬租用成本;可以異步調(diào)用外部數(shù)據(jù);其是基于標(biāo)準(zhǔn)化的并被
5、廣泛支持的技術(shù),并且不需要插件或下載小程序;AJAX使Web中的界面與應(yīng)用分離,也可以說(shuō)是數(shù)據(jù)與呈現(xiàn)分離;對(duì)于用戶和ISP來(lái)說(shuō)是雙贏的?! ?AJAX技術(shù)的高級(jí)應(yīng)用研究 2.1AJAX語(yǔ)言對(duì)象面向的javascript 由定義來(lái)看,javascript是典型的AJAX語(yǔ)言。不同于Java,javascript并不強(qiáng)調(diào)OO風(fēng)格的編碼。然而,javascript居然全面支持所有OO語(yǔ)言的主要屬性,即封裝、繼承和多態(tài)性。 數(shù)據(jù)類(lèi)型:在Java中,一個(gè)類(lèi)定義了一個(gè)數(shù)據(jù)及與它相關(guān)行為的組合。盡管javascript保留了class關(guān)鍵字,但是它不支持與常
6、規(guī)OOP語(yǔ)言一樣的語(yǔ)義。在javascript中,對(duì)象是用函數(shù)來(lái)定義的。事實(shí)上,通過(guò)在下面的示例中定義一個(gè)函數(shù),就定義了一個(gè)簡(jiǎn)單的空類(lèi)Calculator: functionCalculator(){} 一個(gè)新實(shí)例的創(chuàng)建與在Java中相同使用new操作符: varmyCalculator=newCalculator(); 上面函數(shù)不僅定義一個(gè)類(lèi),而且還擔(dān)當(dāng)一個(gè)構(gòu)造器。在此,操作符new實(shí)現(xiàn)了實(shí)例化一個(gè)類(lèi)Calculator的對(duì)象,并且返回一個(gè)對(duì)象參考而不是只調(diào)用該函數(shù)?! ?chuàng)建這樣的空類(lèi)在實(shí)際中并沒(méi)有多大用處。下面,使用一個(gè)Java-腳本原型結(jié)構(gòu)填充
7、類(lèi)定義。javascript使用原型當(dāng)作創(chuàng)建對(duì)象的模板。所有的原型屬性和方法都被參考引用復(fù)制到一個(gè)類(lèi)的每個(gè)對(duì)象中,所以它們都具有相同的值。使用者可以改變一個(gè)對(duì)象中原型屬性的值,并且該新值會(huì)覆蓋從原型中復(fù)制過(guò)來(lái)的缺省值,但是這僅對(duì)于在一個(gè)實(shí)例中。下列語(yǔ)句將把一個(gè)新屬性添加到Calculator對(duì)象的原型上: Calculator.prototype._prop=0; 既然javascript并沒(méi)有提供一個(gè)方法來(lái)從句法上表示一個(gè)類(lèi)定義,故將使用with語(yǔ)句來(lái)標(biāo)記該類(lèi)的定義邊界。這也將使得示例代碼更為短小,因?yàn)樵搘ith語(yǔ)句被允許在一個(gè)指定對(duì)象上執(zhí)行一系列的語(yǔ)
8、句而不需要限制屬性?! unctionCalcul