關于AJAX構架的一點構想
以前搞了一個XPP的編程平臺,應該來說,不是一個成功的東東。XPP本身確實解決了目前編程的諸多問題,例如頁面狀態保持、統一的界面風格、良好的數據效驗器,但并沒有考慮到數據傳輸的問題,雖然采用了壓縮流來傳遞數據,但同樣也增加了服務器的壓力。也許對于中小型的企業應用,XPP可以作為一個被選的平臺,但作為大型的企業應用,XPP表現恐怕很難實用。
在有了上次失敗的經歷后,考慮是否可以采用AJAX作為一個輕量級的框架(XPP的體系太過龐雜,過多在服務端考慮了前端的UI邏輯,也是這才是失敗的根本),側重于業務邏輯層的調用,不再考慮UI層的邏輯。
AJAX主要實現的主要技術:
1、XmlHttpRequest主要考慮是否需要支持瀏覽器的差異性,目前至少提供對IE和Mozilla的支持,以后是否考慮對其他瀏覽器進行支持?
這是是個很easy的問題,暫時不進行深入探索。
2、XML數據傳輸層的封裝(AJAX的核心)AJAX的核心數據傳遞毫無疑問只能是基于XML的,如何有效地對XML數據輸送層進行封裝,來保證構架良好的可用性和擴展性?這里主要是需要考慮兩個方面:良好的封裝性和執行效率。
我初步的想法是服務端采用類似buffalo的技術實現JAVA POJO與XML的序列化,客戶端采用js實現類封裝實現JAVA對象的映射(考慮采用服務器端自動生成js文件,并動態加載js對象,以提高瀏覽器的處理能力),并在此基礎上實現XML-PRC。
3、服務端集成考慮AJAX與其它架構集成的方案,并保證系統良好的安全性和執行效率。
暫時處于疑問中的幾個問題:
1、UI層如何表現?采用AJAX的話,是采用js構建頁面還是采用XmlHttp獲取服務端返回的頁面信息?
2、數據效驗問題?對于AJAX作RIA的應用,UI層的數據效驗肯定是必要的,由于采用AJAX,用戶繞過UI效驗是很容易的事情,如果在服務端同樣做數據效驗的話,是否會增加代碼的編寫工作量?是否能夠采用統一的數據效驗?如何可以的話,如何實現?
目前buffalo主要有如下問題:
a. JAVA Object的序列化邏輯與RPC的業務邏輯混在一起,不利于系統的擴展
b. buffalo只支持UTF-8編碼的XML,不支持GBK編碼的XML
c. buffalo可以調用服務的所有方法,可能會對服務器產生一定的安全隱患
posted on 2006-03-15 10:15
xnabx 閱讀(193)
評論(0) 編輯 收藏 所屬分類:
4、Ajax