首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

Ajax 優於 JSF 的深度探討:架構差異與未來趨勢

     編輯:J2EE

JSF 誕生背景與設計初衷

Sun 推出 JSF 主因:基於組件的 Web 開發是趨勢,自包含組件便於 IDE 處理,提升效率。JSF 優於 Struts/WebWork 等傳統 MVC 框架之處,在於能與 IDE 結合自動生成代碼,而傳統框架純手工編寫影響效率。又因 Java 在客戶端無優勢 (Applet 已棄),Sun 不願採用 JavaScript (傳統開發者視 JS 為瑣碎任務),故將所有用戶事件處理放在伺服端。

JSF 的致命缺陷:同步請求/響應模型

此決策導致 JSF 事件處理模型綁死在伺服器,限制了響應式交互設計,網絡延遲嚴重損害可用性。這也是 Ajax 在 JSF 架構中難以充分發揮作用的根本原因。

JSF 模仿 VB 組件化方向正確,但 VB 事件模型在本地處理,而 JSF 在遠端同步處理,本質差異導致「東施效顰」。設計階段同步請求/響應為主流,思路束縛於基於頁面的開發,未思考異步可能性。

異步請求/響應:Ajax 的核心優勢

異步帶來更好交互設計。以 Google Maps 為例:用戶拖動地圖時異步獲取圖片,不打斷操作流程;傳統地圖服務每次拖動需刷新整頁。微軟早期地圖甚至不允許拖動。Google Maps 雖未用 XMLHttpRequest (改用動態修改 img.src),但本質是異步請求,不阻塞用戶操作,故屬廣義 Ajax。

JSF 的出路與未來判斷

  • JSF + Applet:Applet 多線程可捕獲事件異步發送,但架構複雜且 Applet 已棄用。
  • JSF + Java Web Start:JWS 針對 Rich Client 而非瀏覽器內 RIA,不適用。
  • 結論:JSF 充其量是過渡方案,在 Ajax/Flash 競爭下風光不再。

未來 RIA 三分天下

基於瀏覽器的 RIA 開發,Ajax 與 Flash/Flex/Laszlo 為兩大最有前途技術。微軟 Atlas (後稱 Silverlight) 當時尚屬 vaporware。Java Web Start 僅限內部應用。

啟示

架構設計若忽視異步交互本質,縱使組件化做得再好,終將被更貼近用戶體驗的技術取代。JSF 後期雖引入 Ajax 整合 (如 Ajax4jsf、RichFaces),但架構基因難改,不如原生 Ajax 框架 (jQuery、ExtJS 等) 靈活自然。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved