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

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

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

    隨筆 - 175  文章 - 202  trackbacks - 0
    <2006年3月>
    2627281234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    第一個Blog,記錄哈哈的生活

    常用鏈接

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    Java links

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    從他們的 MVC 模型上面看,請求轉發的模型基本一致。
    性能的區別我覺得主要在 View 這一層上。

    Struts 將 JavaBean 轉至 JSP 頁面,來處理頁面顯示,比較直接,而 Struts 本身也是關注的是 MVC 的分離,在頁面處理方面并沒有給予過多的關注。直接的顯示讓 Struts 在 View 層的性能有比較好的表現。

    而 JSF 在 View 這一層:一、需要維護組件樹的狀態。二、需要使用渲染器來將組件渲染。性能就會比 Struts 差一些。


    從生命周期的角度上來看

    Struts 請求的基本周期是。經過 front servlet 的請求分發,然后生成 command 對象,由 action 調用 Model 直至轉向 View。

    JSF 的基本周期是,經過 front servlet 請求分發(這一步同 struts),然后 restore view , apply request value, process validations , update model 這些生命周期相當于 struts 生成 command 對象階段,invoke application 相當于調用 model ,render response 相當于轉向 view 階段。

    對比來看,請求分發階段不會產生更多的性能差異,然后對比其它階段
    struts 生成 command 對象階段包含 conversion 和部分 validation ,相當于 JSF 的 apply request value 和 process validations 階段,但 JSF 還需要 restore view 和 update model(保持 Managed Bean 的狀態),性能會差一點,但要補充的是 restore view 在 myfaces 的實現中,會將 view 對象放在客戶端保存(好象可以配置不保存),下一次請求如果有 view 對象,會直接反序列化得到 view root ,相當于在客戶端 cache了,而 update model 只會在部分與數據相關的組件會使用。最后的 invoke application 與 struts 的調用 action ,然后 lifecycle 中的 render response 階段會找到對應的 view 并轉向,然后由頁面的 tag 調用 render 來渲染出頁面。最后調用 tag 渲染頁面階段相當于 struts 的前臺顯示,但由于更大粒度和更精細的渲染,在這個階段會與 struts 有一定的性能差。

    總體來說,JSF 使用了大量的 cache 手段,盡量減少一些性能開銷,但比 struts 增強的 backing bean 管理、事件處理能力和豐富的組件能力會讓 JSF 在生命周期性能上比 struts 略遜一籌。

    但這并不是所有的應用場景性能上都要比 struts 差,比如:同樣是后臺數據驗證的情況下,JSF 在驗證錯誤時立即會返回用戶頁面,而沒有經驗其它生命周期,可 struts 還是一樣會走完全部生命周期,這種情況 JSF 就會達到比 struts 更好的性能。

    瑕不掩瑜,性能上部分的劣勢并不能掩蓋 JSF 強大的功能和為我們省下的大量的時間,我相信 JSF 肯定會在將來的開發中得到更多開發者的青睞。

    posted on 2006-03-07 23:22 哈哈的日子 閱讀(2286) 評論(1)  編輯  收藏

    FeedBack:
    # re: 拋磚引玉,JSF 和 Struts 的性能比較。(原創) 2006-03-13 10:21 yangqing
    我覺得jsf的一個最大的好處是幫我們保存住了狀態,這在傳統的web開發(特別是複雜的)中是很頭痛得一件事,這也是文中說的性能比struts差的一原因吧,但你自己去維護這些狀態的花銷也不少啊。  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲欧洲日产国码无码久久99| 免费一级毛片一级毛片aa| 亚洲国产精品成人精品无码区| 无码AV动漫精品一区二区免费| 亚洲av片一区二区三区| 麻豆安全免费网址入口| 亚洲av手机在线观看| 又粗又长又爽又长黄免费视频 | 最近免费mv在线观看动漫| 在线播放亚洲第一字幕| 男女作爱在线播放免费网站| 亚洲福利在线视频| 在线看片韩国免费人成视频| 亚洲伦理中文字幕| 国产美女无遮挡免费视频网站| 免费夜色污私人影院在线观看| 一个人看www免费高清字幕| 亚洲国产精品无码成人片久久| 91av在线免费视频| 亚洲无人区码一二三码区别图片| 在线免费不卡视频| 精品无码一级毛片免费视频观看 | 亚洲人成网站999久久久综合| 国产成人免费片在线观看| 全黄A免费一级毛片| 国产AV无码专区亚洲精品| 67194熟妇在线永久免费观看 | 伊在人亚洲香蕉精品区麻豆| 国产区在线免费观看| 亚洲一区二区三区电影| 四虎成人免费网站在线| 国产美女视频免费观看的网站| 亚洲尹人九九大色香蕉网站| 青青草国产免费久久久91| 一级毛片大全免费播放下载| 亚洲精品视频在线观看视频| 在线观看视频免费国语| 久久久国产精品福利免费| 亚洲色欲啪啪久久WWW综合网| 亚洲熟妇av一区二区三区漫画| 亚洲国产精品免费观看|