亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

AJAX應(yīng)用開發(fā)總結(jié)

系統(tǒng) 1777 0

1. 為什么要 AJAX(RIA)?

???????? 這個(gè)理由太多了,我僅從系統(tǒng)結(jié)構(gòu)模型分析下,以 2000 年為分水嶺吧, 2K 年后火起的是 B/s 結(jié)構(gòu),相比較與 c/s 結(jié)構(gòu)的優(yōu)劣,列表如下:
B/S C/S
缺點(diǎn) 優(yōu)點(diǎn) 優(yōu)點(diǎn) 缺點(diǎn)
客戶端要安裝 ? 用戶界面人性化 免安裝、免維護(hù) ? 界面觀感差(點(diǎn)一下刷一下)
不便統(tǒng)一升級(jí) 升級(jí)擴(kuò)展方便
安全性差 ( 程序在客戶機(jī)上 ) 便于進(jìn)行統(tǒng)一權(quán)限管理
代碼相對(duì)藕合性強(qiáng);開發(fā)效率低 MVC 的模式簡(jiǎn)潔 ; 便于分工開發(fā)
. . . ? . . .

??? AJAX 技術(shù)的興起,我認(rèn)為從用戶的角度看,就是要在瀏覽器上跑出本機(jī)應(yīng)用的效果, AJAX 兼?zhèn)淞藗鹘y(tǒng) B/S C/S 的優(yōu)點(diǎn)

?

2.ajax 框架分類

開發(fā)者在使用 ajax 技術(shù)時(shí),大多的痛處是:漂亮的界面怎么搞定;大多數(shù)的專業(yè) java 工程師開發(fā)的界面都是恐怖的; 是在引入了 ajax 技術(shù)后,頁面表示己不像 mvc 中那樣清晰;與美工良好的配合需要程序員對(duì) css html javaScript 技術(shù)更深入的掌握 --- 而不僅僅是看懂為止,因此,更多時(shí)間,我們會(huì)在應(yīng)用中使用像 dwr ZK 這樣成熟的 ajax 框架。 以俺之見, ajax 框架可以分為如下四類型:

?

第一種是基與傳輸?shù)慕鉀Q方案 ,如前面所說到的 dwr ,當(dāng)然還有大名鼎鼎的 json ;這種解決方案通過其框架的轉(zhuǎn)換,使得頁面的 js 可以透明調(diào)用服務(wù)器端語言方法并自動(dòng)轉(zhuǎn)換其間交換的數(shù)據(jù)類型;但在頁面的表現(xiàn)手段較差,如果你要展示一個(gè)漂亮互動(dòng)的 tree grid ,這樣樣的框架并沒有提供支持。

?

第二種可以理解為 java 語言到 js 的翻譯器 :即服務(wù)器端以編寫事件調(diào)用機(jī)制通訊的 java 代碼,通過其框架導(dǎo)出成前臺(tái)的 js 腳本調(diào)用;對(duì)于開發(fā)者而言,只需要編寫后端 java 代碼即可;這種類型框架的噱頭就是:“不寫一行 js 代碼也能應(yīng)用 ajax 技術(shù)!”。典型的代碼如 GWT ZK 等。 ????

?

第三種則是以獨(dú)立與服務(wù)器端語言的 js 腳本庫(kù)形式發(fā)布 ,如 yui ext jQuery 等;這種基本上是一個(gè)獨(dú)立的 js 類庫(kù),帶有眾多的工具函組、 tree form grid 等現(xiàn)成的組件,且有統(tǒng)一的設(shè)計(jì)風(fēng)格;所以它的優(yōu)勢(shì)就是頁面組件非常完善;當(dāng)然,學(xué)習(xí)起來需要對(duì) js 語法相當(dāng)熟悉。 js 腳本庫(kù)為應(yīng)用形式的,在開發(fā)時(shí)學(xué)習(xí)成本較高;

?

?????? 這里我推薦 TIBCO General Interface ( www.tibco.com/devnet/gi/ ) TIBCO是 通過開源 BSD 授權(quán)發(fā)布的 Ajax RIA 庫(kù)。 在這個(gè) RIA 庫(kù)中包含了 100 多個(gè) Ajax 組件,并且還提供相應(yīng)的可視化開發(fā)工具( TIBCO Business Studio )。 這個(gè)工具是我見到開發(fā) AJAX 應(yīng)用最牛 X IDE --- 就像開發(fā) SWING 界面一樣拖放!下圖為 tibco gi 的界面: ? ? ? ? ?

?

?????? ? 對(duì)于大型的AJAX項(xiàng)目開發(fā),建議使用TIBCO的IDE快速開發(fā)應(yīng)用界面,后臺(tái)的javaObject到前臺(tái)來就通過dwr(dwr3己有內(nèi)置的gi調(diào)用接口) ,我現(xiàn)在手頭的一個(gè)項(xiàng)目就是hibernate+dwr+TiBCO,黃金搭檔!呵呵。 ?

????

? 第四種則是全棧式設(shè)計(jì)的 RIA 開發(fā) ,可選的技術(shù)(平臺(tái))有 javaFX Flex 、及 Silverlight 等。這種方式可以實(shí)現(xiàn)功能最為強(qiáng)大的 RIA 開發(fā) ---- 可以理解為它將傳統(tǒng)的本機(jī)應(yīng)用開搬到了 web 上。但其對(duì)網(wǎng)絡(luò)帶寬要求較高,且需要客戶端瀏覽器插件支持。我本人比較看好 Flex ( http://www.riachina.com/ 上有相關(guān)較多的討論 )。

??? 與前面三種有本質(zhì)區(qū)別的是,前面三種都是基于http協(xié)議的,本質(zhì)上是用XHR將http的請(qǐng)求/響應(yīng)模式包裝為異步,不存在面向連結(jié)的通信!也就不可能出現(xiàn)真正的"服務(wù)器推"技術(shù);但在Flex中,是可以在客戶端自己創(chuàng)建到服務(wù)器的Socket的,其它二種,我還不清楚,呵呵。

3.我對(duì) AJAX 應(yīng)用開發(fā)的感受:

??????? 目前 Ajax 的框架、工具可謂是成群結(jié)隊(duì)的涌現(xiàn)出來;在具體開發(fā)時(shí),經(jīng)常會(huì)面臨選擇的難題;做一個(gè)合適的選擇,要考慮到項(xiàng)目的應(yīng)用方向,如是互聯(lián)網(wǎng)門戶還是企業(yè)內(nèi)部?項(xiàng)目的安全性是否特別重要?選擇某種框架(工具)時(shí)也必須考慮到團(tuán)隊(duì)的學(xué)習(xí)成本。總而言之 --- 不要陷在這些工具的泥潭中,今天試這個(gè),明天玩哪個(gè)。 ??

?????? 有一點(diǎn)是不變的:目前的 AJAX 應(yīng)本,其根本是基于 javaScript css 編程,這兩種東東對(duì)與 AJAX 應(yīng)用而言,其重要性就相當(dāng)與 JDK 核心 API 在開發(fā) javaEE 應(yīng)用時(shí)的重要性一樣 ---- 這是本質(zhì)、這才是核心!但這兩者卻經(jīng)常是 java 程序員所不擅長(zhǎng)的;對(duì)于應(yīng)用市場(chǎng)而言,應(yīng)該出現(xiàn)專業(yè)的 ajax 工程師,因?yàn)? ajax 畢竟是獨(dú)立與服務(wù)器的一種技術(shù)。

?

? 4.AJAX 對(duì) web 開發(fā)模式帶來的改變:


1.客戶觀感重與技術(shù)方式,不要做技術(shù)的學(xué)究!
?????? AJAX本身是一種新瓶子裝老酒的技術(shù);在軟件開發(fā)者大淡OOP、MVC、ORM等等技術(shù)名詞時(shí),可能是乎略了一個(gè)簡(jiǎn)單但是本質(zhì)的問題:軟件就是要客戶用得方便!一直被oop程序員輕視的的javaScript和css現(xiàn)在擔(dān)擋了這一重任,并提醒我們:不要跟我講技術(shù)學(xué)究名詞!我要的是好用,用的方便!---這才是客戶要的,這也是AJAX技術(shù)能如此訊猛發(fā)展的原動(dòng)力。

?

2.多頁面的MVC模型轉(zhuǎn)向桌面式的單頁面:
??? 在經(jīng)典的MVC模開發(fā)模型下,典型的過程是點(diǎn)擊頁面上的一個(gè)組件,請(qǐng)求后臺(tái)Action(業(yè)務(wù)動(dòng)作),返回刷新頁面。而在ajax模型下,瀏覽器里裝載的可能一直是一個(gè)頁面,頁面上組件事件的觸發(fā)將直接調(diào)用后臺(tái)對(duì)應(yīng)的業(yè)務(wù)動(dòng)作更新另外一個(gè)組件---似乎又回歸到了過時(shí)的c/s結(jié)構(gòu)模型。這里看不到控制器;MVC中視圖的粒度從頁面縮小到html組件;通過請(qǐng)求/響應(yīng)模型的Action調(diào)用在這里變成了基與事件機(jī)制的響應(yīng),就像是將deskTop放到了瀏覽器中一樣。?

?

3.ajax中間層增加了web開發(fā)的分工:
?????? 傳統(tǒng)的web開發(fā),頁面一般只交給web設(shè)計(jì)師(主要負(fù)責(zé)頁面布局和美工)完成;程序員會(huì)躲在后臺(tái),寫一些誰也看不到的代碼控制頁面上動(dòng)態(tài)數(shù)據(jù)的展示;AJAX在這中間增加了新的一層,這也是很多程序員從嚴(yán)謹(jǐn)?shù)腛OP高級(jí)語言編程轉(zhuǎn)向靈活多變的腳本語言(javaScript)甚止是文本化的標(biāo)記語言所感到不適的地方;另外,我們常規(guī)的思路是從不要求程序員做出漂亮的web界面---他們也做不出!但這一層的新出現(xiàn),帶來了新的分工,即專業(yè)的AJAX程序員。??

???? 專業(yè)的AJAX程序員不但要對(duì)html、css、javaScript有非常熟練的掌握;重要的是要求具備人性化界面設(shè)計(jì)的思考能力,考慮到一個(gè)簡(jiǎn)單的autoSuggest就引出web開發(fā)如此大的變革,你就知道這點(diǎn)有多么重要!因?yàn)槟阒苯用鎸?duì)的是客戶的眼睛,你不是躲在服務(wù)器后面的程序員!因此有理由認(rèn)為你做的是最重要的事。?

?

4.web安全性要求的加強(qiáng):
??? 這是無可避免的,相對(duì)于呆板的MVC,ajax的靈活意味著安全的削弱;大量的ajax層js腳本會(huì)暴露在客戶端,如果這其中可能包含了你的安全驗(yàn)證和一些需要保密的業(yè)務(wù)邏輯,這會(huì)被攻擊者輕而易舉的搞掂,看看我們前面dwr的例子就知。?? 除了這要求后臺(tái)開發(fā)者和ajax程序員更加緊密的合作和細(xì)心之外;最好是在后立設(shè)立獨(dú)立的安全機(jī)制控制,驗(yàn)證所有的敏感數(shù)據(jù)操作。

?

-------------------------------------------------------------------------碼了這么多,就是想聽下大伙的看法 arrow

?

AJAX應(yīng)用開發(fā)總結(jié)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 91网红福利精品区一区二 | 九九网站 | 中文字幕精品在线观看 | 看欧美的一级毛片 | 日韩欧美中文字幕一区二区三区 | 色综合视频在线观看 | 激情欧美一区二区三区中文字幕 | 在线亚洲精品国产波多野结衣 | 亚洲a视频在线 | 日日日日人人人夜夜夜2017 | 欧美毛片在线播放观看 | 久久91这里精品国产2020 | jizjizjiz亚洲大全 | 女人十八毛片免费观 | 视频二区精品中文字幕 | 久久精品国产精品青草图片 | 亚洲视频91| 国产精品一区三区 | 久久精品日本免费线 | 国产免费自拍视频 | 国产精品亚洲二线在线播放 | 欧美亚洲精品一区二三 | 99国内精品 | 视色在线| 97影院2| 九九久久久久午夜精选 | 久久久精品国产四虎影视 | 日本在线网址 | 亚洲伦理一二三四 | 欧美国产综合日韩一区二区 | 亚洲国产人成在线观看 | 成人看片黄a毛片 | 日韩国产成人资源精品视频 | 久久亚洲国产视频 | 日本午夜色 | 人人看人人鲁狠狠高清 | 狠狠色婷婷狠狠狠亚洲综合 | 99久久精品国产9999高清 | 日本一区二区三区高清福利视频 | 成年女人看片免费视频频 | 亚洲精品国产第一区第二区国 |