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

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

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

    我的CRC卡片盒

    zhangwen's blog

    關于ajax的一些隨筆

    ?

    ?

    關于 MVC

    ?

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

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

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

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

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

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

    ????????????????????? iii.????????????? 應用更為廣泛的 XML

    對應的,他們的傳輸協議也有多種(當然,都是基于 HTTP ):

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

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

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

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

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

    ????????????????????? iii.????????????? 服務器端數據驗證與安全保護

    ???????????????????? iv.????????????? 與業務邏輯層之間聯結的紐帶

    但是,這一層的功能一旦集成到業務邏輯層,它將失去主要的作用,很可能退出服務器端的領域。

    ?

    ?

    2、? 傳統的 MVC 框架 ( 比如 Struts WebWork) Ajax 之間應該是競爭的關系,因為:

    a)???????? 傳統的 MVC 框架在本質上,都是同步調用,而非 Ajax 提倡的異步調用。

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

    ???????????????????????? i.????????????? 傳統的 Tag 帶來的不便正逐漸顯現出來。 ( 學習成本、不利于編輯、客戶端與服務器端代碼的夾雜等 )

    ?????????????????????? ii.????????????? Tag Js 的封裝有限,無法發揮 Js 強大靈活的功能

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

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

    c)??????? 基于第一部分提出的原因, Ajax 所提倡的新的 MVC 方式與傳統的 MVC 框架所實現的方式已經有本質的區別,它們之間的競爭也就不可避免了。

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

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

    b)??????? 重視搜索引擎優化

    c)??????? 重視用戶傳統習慣(后退鍵問題等)

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

    ?

    另外,強烈推薦的兩個 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

    ?

    ?

    關于用戶體驗:

    ?

    1、? 更佳的用戶體驗是 Ajax 應用推廣的原動力

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

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

    2、? 交互式設計

    a)???????? 傳統的設計令人惱怒,也不能提高生產率

    b)??????? 基于目標導向的交互式設計

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

    ?

    關于 Web 標準和 Web2.0

    ?

    1、? Ajax 需要建立在 Web 標準之上,因此,學習 Ajax 必須學習 Web 標準。

    2、? 使用 Web 標準能給 Web 應用帶來更多的好處 .

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

    3、? 使用 Ajax 可以實現 Web2.0 的一堆概念

    ?

    關于 RIA (胖客戶端):

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

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

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

    3、? 使用 XML Web Remote 數據傳輸體,可以使 Ajax 應用方便的遷徙到其他 RIA 方案。

    ?

    其他:

    ?

    挑戰與思考:

    1、? Ajax 推動的困難之一在于開發人員對 Js CSS 等表現層技術的輕視。

    a)???????? 業界需要 Web 標準、 Web 2.0 等相關技術,加強對此的研究工作

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

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

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

    b)??????? 國內優秀的 Ajax 框架 Buffalo 正逐步得到多方面的應用。

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

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

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

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

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

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

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

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

    ???????????????????????? i.????????????? 使用數據加密技術

    ?????????????????????? ii.????????????? 使用安全套接字層傳輸數據

    d)??????? 客戶端代碼展現在用戶面前,難以保證商業項目源代碼的版權。

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

    ?

    4、? 其他問題:

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

    ???????????????????????? i.????????????? 使用隨機碼訪問服務器端地址

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

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

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

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

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

    評論

    # re: 關于ajax的一些隨筆 2006-06-15 15:53 Compass

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

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

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

    # re: 關于ajax的一些隨筆 2006-06-15 17:16 Compass

    @不知道叫啥好

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

    # re: 關于ajax的一些隨筆 2006-06-15 18:12 wolfsquare

    第2點的abc三個理由都站不住腳.
      回復  更多評論   

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

    哈哈  回復  更多評論   

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

    @wolfsquare
    呵呵,能說詳細點嗎?
      回復  更多評論   

    # re: 關于ajax的一些隨筆 2006-06-15 20:38 wolfsquare

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

    # re: 關于ajax的一些隨筆 2006-06-16 13:35 google

    ..............  回復  更多評論   

    # re: 關于ajax的一些隨筆 2006-06-16 14:36 foxty

    Ajax和struts,ww怎么會是競爭關系呢? 不太贊同這個觀點,個人認為2者結合起來使用是很不錯的。
      回復  更多評論   

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

    @foxty
    我認為,ajax試圖使用js來代替傳統mvc框架中controller的地位,所以說它們是競爭關系  回復  更多評論   

    # re: 關于ajax的一些隨筆 2006-06-16 18:18 xy.qin

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

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

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

    在我習慣了ajax的遠程調用方式后,我發現很難再回到struts\ww那種頁面調用方式。不管是代碼量、可維護性、OO程度、可測性,ajax都要好于struts\ww。空口無憑~有機會偶會來證明一下~
      回復  更多評論   

    # re: 關于ajax的一些隨筆 2006-06-16 23:47 google

    個人覺得AJAX會對傳統的STRUTS開發有很大的沖擊  回復  更多評論   

    # re: 關于ajax的一些隨筆 2006-06-17 01:08 Guest

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


    AJAX 跟Struts, WW等根本不存在競爭關系。AJAX只是Struts/WW View層的一個小小的應用而已。

      回復  更多評論   

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

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

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


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


    網站導航:
     

    導航

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

    統計

    常用鏈接

    留言簿(2)

    隨筆檔案(3)

    文章分類

    Programmer

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 999国内精品永久免费观看| 久草视频免费在线| 亚洲精品无码精品mV在线观看| 黄色视频在线免费观看| 亚洲va无码va在线va天堂| 99国产精品免费观看视频| 最新亚洲春色Av无码专区 | 日本高清免费不卡视频| av网站免费线看| 亚洲国产av一区二区三区丶| 国产精品免费播放| 国内精品免费视频精选在线观看 | 全黄A免费一级毛片| 亚洲AV无码乱码国产麻豆| 在线a级毛片免费视频| 久久久WWW成人免费精品| 亚洲爆乳精品无码一区二区| 国产亚洲大尺度无码无码专线 | 国内精品一级毛片免费看| 亚洲国产aⅴ成人精品无吗| 中文字幕av无码无卡免费| 国产尤物在线视精品在亚洲| 久久亚洲成a人片| 亚洲不卡AV影片在线播放| 无码国产精品一区二区免费式影视 | 亚洲色大成网站WWW国产| 亚洲第一中文字幕| 久久精品国产精品亚洲下载| 在线免费观看色片| 思思99re66在线精品免费观看| 久久国产色AV免费看| 美女无遮挡拍拍拍免费视频| 亚洲AV无码之国产精品| 午夜在线a亚洲v天堂网2019| 99久久亚洲综合精品成人网| 国产亚洲精品a在线观看app| 色久悠悠婷婷综合在线亚洲 | 亚洲精品天堂成人片AV在线播放| 久久综合日韩亚洲精品色| 国产亚洲无线码一区二区 | 思思re热免费精品视频66|