<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的CRC卡片盒

    zhangwen's blog

    關(guān)于ajax的一些隨筆

    ?

    ?

    關(guān)于 MVC

    ?

    1、? Ajax 必然會帶來 Web 開發(fā) Model2 模型的變革。

    a)???????? MVC 的角色由服務(wù)器端向客戶端靠攏,或者,干脆轉(zhuǎn)為其他更合適的形式,

    b)??????? V(View) 的角色將不再僅僅是不起眼的 jsp ,在 Web2.0 的時代,它將擁有自己獨(dú)立的一套體系結(jié)構(gòu)。即行為 (Java Script/ECMAScript) ,結(jié)構(gòu) (XHTML) 和樣式 (CSS) 。

    c)??????? M 的角色將更像 DTO ,它的形式可以由多種,比如:

    ???????????????????????? i.????????????? 字符串

    ?????????????????????? ii.????????????? JS 對象

    ????????????????????? iii.????????????? 應(yīng)用更為廣泛的 XML

    對應(yīng)的,他們的傳輸協(xié)議也有多種(當(dāng)然,都是基于 HTTP ):

    ???????????????????????? i.????????????? JSON-RPC JS 對象)

    ?????????????????????? ii.????????????? Burlap( 基于 XML Java 對象 )

    同時,客戶端 - 服務(wù)器端對象之間的轉(zhuǎn)化也將成為一個必須解決的問題。目前, JSON , Buffalo 已經(jīng)比較好的做到了這一點(diǎn)。

    d)??????? C 的角色將更為靠近客戶端,它將利用 Js 的特點(diǎn),發(fā)揮其快速、靈活的特點(diǎn)。它將取代大部分原服務(wù)器端控制器的作用。從而使服務(wù)器端的編程更加專注與業(yè)務(wù)邏輯。

    服務(wù)器端的控制器層則會變得更薄,它將專注于:

    ????????????????????? iii.????????????? 服務(wù)器端數(shù)據(jù)驗證與安全保護(hù)

    ???????????????????? iv.????????????? 與業(yè)務(wù)邏輯層之間聯(lián)結(jié)的紐帶

    但是,這一層的功能一旦集成到業(yè)務(wù)邏輯層,它將失去主要的作用,很可能退出服務(wù)器端的領(lǐng)域。

    ?

    ?

    2、? 傳統(tǒng)的 MVC 框架 ( 比如 Struts , WebWork) Ajax 之間應(yīng)該是競爭的關(guān)系,因為:

    a)???????? 傳統(tǒng)的 MVC 框架在本質(zhì)上,都是同步調(diào)用,而非 Ajax 提倡的異步調(diào)用。

    b)??????? 傳統(tǒng)的 MVC 框架試圖用標(biāo)簽來集成一部分 Ajax 應(yīng)用。但這注定只能是一種過渡行為,因為:

    ???????????????????????? i.????????????? 傳統(tǒng)的 Tag 帶來的不便正逐漸顯現(xiàn)出來。 ( 學(xué)習(xí)成本、不利于編輯、客戶端與服務(wù)器端代碼的夾雜等 )

    ?????????????????????? ii.????????????? Tag Js 的封裝有限,無法發(fā)揮 Js 強(qiáng)大靈活的功能

    ????????????????????? iii.????????????? Tag 是服務(wù)器端生成的代碼,過多的參與客戶端的行為,不利于程序的分層實現(xiàn)。

    ???????????????????? iv.????????????? 使用 Tag 使得頁面展現(xiàn)邏輯的控制變得復(fù)雜和難于理解。它將使動作與表現(xiàn)的分離變得困難。也使得客戶端與服務(wù)器端邏輯的分離變得不可能。試想用一段代碼來控制一個自己也不知道會不會生成,能生成什么樣 HTML Tag

    c)??????? 基于第一部分提出的原因, Ajax 所提倡的新的 MVC 方式與傳統(tǒng)的 MVC 框架所實現(xiàn)的方式已經(jīng)有本質(zhì)的區(qū)別,它們之間的競爭也就不可避免了。

    3、? 傳統(tǒng)的 MVC 框架適用的地方( Web Request 適用):

    a)???????? 重視 URL 的應(yīng)用,如新聞、論壇等

    b)??????? 重視搜索引擎優(yōu)化

    c)??????? 重視用戶傳統(tǒng)習(xí)慣(后退鍵問題等)

    實際上,上邊所說的問題 Ajax 都可具有相應(yīng)的解決方案,但是由于并不能顯示出更多的優(yōu)勢。所以傳統(tǒng)的 MVC 應(yīng)用框架仍然有存在的空間。

    ?

    另外,強(qiáng)烈推薦的兩個 PPT

    莊表偉:

    http://www.ajaxcn.org/space/start/2006-03-13/1/Ajax%E6%8A%80%E6%9C%AF%E5%9C%B0%E5%9B%BE.pps

    曹曉剛:

    http://www.redsaga.com/down/Use-RIA-And-Metadata-In-J2EE-Enterprise-Dev.ppt

    ?

    這個也不錯,不過沒完全看懂:

    http://alex.dojotoolkit.org/wp-content/LowLatencyData.pdf

    ?

    ?

    關(guān)于用戶體驗:

    ?

    1、? 更佳的用戶體驗是 Ajax 應(yīng)用推廣的原動力

    a)???????? 2006 年的 Web 開發(fā)將是注重用戶體驗的一年

    b)??????? 基于異步的 Web Remote 調(diào)用將給用戶帶來更好的用戶體驗

    2、? 交互式設(shè)計

    a)???????? 傳統(tǒng)的設(shè)計令人惱怒,也不能提高生產(chǎn)率

    b)??????? 基于目標(biāo)導(dǎo)向的交互式設(shè)計

    c)??????? http://www.dedream.com

    ?

    關(guān)于 Web 標(biāo)準(zhǔn)和 Web2.0

    ?

    1、? Ajax 需要建立在 Web 標(biāo)準(zhǔn)之上,因此,學(xué)習(xí) Ajax 必須學(xué)習(xí) Web 標(biāo)準(zhǔn)。

    2、? 使用 Web 標(biāo)準(zhǔn)能給 Web 應(yīng)用帶來更多的好處 . 。

    a)???????? 具體的可以參見《網(wǎng)站重構(gòu)》一書。 http://www.china-pub.com/computers/common/info.asp?id=18781

    3、? 使用 Ajax 可以實現(xiàn) Web2.0 的一堆概念

    ?

    關(guān)于 RIA (胖客戶端):

    1、? Ajax 是否屬于 RIA 方案?

    這種爭論意義不大,但是 Ajax 確實帶來了與其他 RIA 方案相似的用戶體驗。在 RIA 重新引起人們重視的今天。

    2、? 比較其他的 RIA 方案, (Flash\Flex , Java Web Start Applet Eclipse Remote , ActiveX) , Ajax 更容易被 Web 開發(fā)人員所接受

    3、? 使用 XML Web Remote 數(shù)據(jù)傳輸體,可以使 Ajax 應(yīng)用方便的遷徙到其他 RIA 方案。

    ?

    其他:

    ?

    挑戰(zhàn)與思考:

    1、? Ajax 推動的困難之一在于開發(fā)人員對 Js 、 CSS 等表現(xiàn)層技術(shù)的輕視。

    a)???????? 業(yè)界需要 Web 標(biāo)準(zhǔn)、 Web 2.0 等相關(guān)技術(shù),加強(qiáng)對此的研究工作

    b)??????? 需要開發(fā)人員重視用戶交互、用戶體驗方面的研究

    2、? 相對不成熟的 Ajax 開源框架,目前 Ajax 開發(fā)尚沒有類似 Struts WebWork 等經(jīng)過多年考驗成熟框架,多數(shù) Ajax 框架還不存在 2.0 以上的發(fā)布版。而且 Ajax 開源框架質(zhì)量的良莠不齊也給開發(fā)人員的選擇帶來困難。

    a)???????? 部分精品的 Ajax 框架( DWR Buffalo 、 JSON 等)已經(jīng)將逐步走向成熟,雖然尚缺乏大型應(yīng)用的考驗,但也有了長足的進(jìn)步。

    b)??????? 國內(nèi)優(yōu)秀的 Ajax 框架 Buffalo 正逐步得到多方面的應(yīng)用。

    3、? Ajax 的安全問題與解決方案,

    a)???????? Ajax 使用的 XMLHttp 技術(shù)不能跨域訪問 url, 也不能在 HTTP 協(xié)議的頁面訪問 HTTPS 的請求。

    ???????????????????????? i.????????????? 對于安全性不高的應(yīng)用,可以使用服務(wù)器端中間頁面(服務(wù)器段代理)解決此問題。

    ?????????????????????? ii.????????????? 對于確實需要加密的應(yīng)用,可以使用嵌入 HTTPS 協(xié)議的 IFrame 頁面來訪問 HTTPS 請求。

    b)??????? DoS 攻擊。 Ajax 使用的 XMLHttp 使用類似 POST 的方式提交數(shù)據(jù)。使得客戶端可以無限制的提交大量攻擊性數(shù)據(jù)。一旦攻擊者采用分布式拒絕服務(wù)攻擊 (DDoS) ,將對系統(tǒng)帶來很大影響。

    ???????????????????????? i.????????????? 除加強(qiáng)服務(wù)器段驗證外,目前軟件方面無太好的解決辦法。實際上,使用 POST 方式的表單提交同樣存在此問題,但是 Ajax 的應(yīng)用使得服務(wù)器端的服務(wù)地址變得更易被發(fā)現(xiàn)。

    ?????????????????????? ii.????????????? 使用硬件防火墻。

    c)??????? 傳輸數(shù)據(jù)減少,使得數(shù)據(jù)被截獲后分析變得容易。

    ???????????????????????? i.????????????? 使用數(shù)據(jù)加密技術(shù)

    ?????????????????????? ii.????????????? 使用安全套接字層傳輸數(shù)據(jù)

    d)??????? 客戶端代碼展現(xiàn)在用戶面前,難以保證商業(yè)項目源代碼的版權(quán)。

    ???????????????????????? i.????????????? JavaScript 腳本進(jìn)行加密( Google )。

    ?

    4、? 其他問題:

    a)???????? 緩存問題, XMLHttp 的緩存使得服務(wù)器端數(shù)據(jù)更新后,客戶端不一定能立即展現(xiàn)出來

    ???????????????????????? i.????????????? 使用隨機(jī)碼訪問服務(wù)器端地址

    ?????????????????????? ii.????????????? 通過對 XMLHttp 緩存性質(zhì)的設(shè)置,犧牲部分性能來解決此問題

    b)??????? 瀏覽器兼容性問題:

    ???????????????????????? i.????????????? 目前流行的 Ajax 框架均可支持大部分的瀏覽器

    ?????????????????????? ii.????????????? 對于比較古老的瀏覽器(不支持 XMLHttp )尚沒有解決的辦法,但是使用這部分瀏覽器的訪問者數(shù)量已經(jīng)接近于 0 。

    posted on 2006-06-15 12:13 不知道叫啥好 閱讀(1843) 評論(15)  編輯  收藏

    評論

    # re: 關(guān)于ajax的一些隨筆 2006-06-15 15:53 Compass

    ajax應(yīng)用中,表單的服務(wù)器校驗怎么做?校驗的錯誤怎么傳回客戶端?傳統(tǒng)的mvc都有成熟的校驗框架,可以把這些移植過去嗎?  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-15 15:59 不知道叫啥好

    @Compass
    在我們的項目里已經(jīng)有相應(yīng)的方案。其實不是特別復(fù)雜,也耗費(fèi)不了太大的工作量。不能太依賴于開源軟件嗎  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-15 17:16 Compass

    @不知道叫啥好

    這個方案如果僅僅適用于你們的項目對別人沒什么意義,如果具有通用性,樓主可以考慮把它做成一個框架發(fā)布出來,為開源作些貢獻(xiàn)  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-15 18:12 wolfsquare

    第2點(diǎn)的abc三個理由都站不住腳.
      回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-15 18:20 晴天娃娃

    哈哈  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-15 19:10 不知道叫啥好

    @wolfsquare
    呵呵,能說詳細(xì)點(diǎn)嗎?
      回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-15 20:38 wolfsquare

    AJAX框架出來了,才是Strust,Webwork們的競爭對手,不過,難道只有AJAX框架才能AJAX?WW們更容易達(dá)到這點(diǎn)吧,AJAX也許建立在既有的框架中,才是最好的出路.  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-16 13:35 google

    ..............  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-16 14:36 foxty

    Ajax和struts,ww怎么會是競爭關(guān)系呢? 不太贊同這個觀點(diǎn),個人認(rèn)為2者結(jié)合起來使用是很不錯的。
      回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-16 15:31 不知道叫啥好

    @foxty
    我認(rèn)為,ajax試圖使用js來代替?zhèn)鹘y(tǒng)mvc框架中controller的地位,所以說它們是競爭關(guān)系  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-16 18:18 xy.qin

    ajax和這些表示層框并不存在什么沖突,也不可能在一個項目中完全應(yīng)用ajax,表示層框架還是需要的,2者結(jié)合是最好的方式。  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-16 18:34 不知道叫啥好

    @xy.qin
    這種說法當(dāng)然簡單又保險。不過有點(diǎn)類似和稀泥了。據(jù)我所知有好多完全應(yīng)用ajax的項目,更有n多不用mvc的爛項目。

    在我習(xí)慣了ajax的遠(yuǎn)程調(diào)用方式后,我發(fā)現(xiàn)很難再回到struts\ww那種頁面調(diào)用方式。不管是代碼量、可維護(hù)性、OO程度、可測性,ajax都要好于struts\ww。空口無憑~有機(jī)會偶會來證明一下~
      回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-16 23:47 google

    個人覺得AJAX會對傳統(tǒng)的STRUTS開發(fā)有很大的沖擊  回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-17 01:08 Guest

    AJAX哪里來的數(shù)據(jù),還不是得靠從Server端采集數(shù)據(jù)。Server 端還不是得 JSP/PHP/ASP etc(當(dāng)然別的方式也行,這些比較常見) 來做嗎?AJAX只是在View的一個很少的方面有優(yōu)勢而以,在MC基本上什么都沒有。況且AJAX的Implementation都是透明的,所有的Business Logic怎樣隱藏?


    AJAX 跟Struts, WW等根本不存在競爭關(guān)系。AJAX只是Struts/WW View層的一個小小的應(yīng)用而已。

      回復(fù)  更多評論   

    # re: 關(guān)于ajax的一些隨筆 2006-06-17 10:50 不知道叫啥好

    @Guest
    我覺得這是因為您還沒有嘗試大規(guī)模ajax的開發(fā)。ajax當(dāng)然要從server端采集數(shù)據(jù),但這時的數(shù)據(jù)已經(jīng)不是來自于controller(action),而是來自于ajax框架自動封裝過的service layer或者domain layer。
    傳統(tǒng)的mvc有一個原則,就是c這一層一定是很薄的一層,只包括對service layer的調(diào)用。而ajax則說,既然你如此之薄,那我就用js來實現(xiàn)吧!就是這樣,ajax完成了對Struts/WW的接替~

    "AJAX的Implementation都是透明的,所有的Business Logic怎樣隱藏?
    "
    介個,我曝漏的只不過是需要view需要用到的方法名和參數(shù),談何透明之說?  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    統(tǒng)計

    常用鏈接

    留言簿(2)

    隨筆檔案(3)

    文章分類

    Programmer

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一级毛片免费不卡| 亚洲国产精品一区二区第四页| 中美日韩在线网免费毛片视频| 亚洲欧洲国产综合| 亚洲乱码中文字幕综合| 国产禁女女网站免费看| 97在线观免费视频观看| 中文字幕免费视频一| 免费国产污网站在线观看| 免费精品视频在线| 亚洲第一第二第三第四第五第六 | 男人天堂2018亚洲男人天堂| 久久精品国产亚洲AV麻豆网站| 亚洲精品无码高潮喷水在线| 亚洲精品成人久久久| 免费看男女下面日出水视频| 天天天欲色欲色WWW免费| 国产在线jyzzjyzz免费麻豆| 99re在线这里只有精品免费| 男女作爱在线播放免费网站| 最新亚洲成av人免费看| 精品多毛少妇人妻AV免费久久| 成人一级免费视频| 免费精品视频在线| 免费无遮挡无遮羞在线看| 亚洲av成人片在线观看| 亚洲一卡一卡二新区无人区| 亚洲精品456人成在线| 亚洲影视自拍揄拍愉拍| 国产亚洲中文日本不卡二区| 亚洲综合一区无码精品| 亚洲人成色77777在线观看| 亚洲日韩精品无码专区加勒比☆ | 国产成人免费视频| 久久成人免费播放网站| 无码人妻精品中文字幕免费| 久久久精品2019免费观看| 最近最好最新2019中文字幕免费| 97在线视频免费| 7723日本高清完整版免费| 好吊妞视频免费视频|