基於組件的框架

 使用基於組件的框架

在爲傳統的Web 應用編寫HTML 頁面的時頁面者手有非常有限的一GUI 件,即HTML 表單元素。它們的特徵集近10 沒有什麼變化,與現代的GUI 具集,它們是非常基礎和的。如果頁面者希望引入或者可編歷控或者動態的級菜之類的,需要藉助於基礎文檔元素編程。這開發使用件工具集(例如MFCGTK+ Cocoa Swing QT創建桌面GUI 是非常的選

1. Web UI 組件

基於件的框架的目標是通過提供服務器端件工具集(API 桌面GUI API,來提Web UI 編程的別。當桌面UI 的時,它們通常使用層調用在一個圖形上下圖,來生成何圖或者東西。當基於Web UI 的時,它們生成能在瀏覽器中提供相同功能的HTMLJavaScript 流,以的編程編程的事。圖5-4 了基於件的Web 框架的構。

5-4 基於組件的框架的架構。應用被描述爲一些組件的集合,它們通過向瀏覽器發送HTML和JavaScrpt流來呈現自己。除了蒐集瀏覽器發送到單個組件的請求的較大的控制器和較大的領域模型外,每個組件還包含自己的小規模的模型、視圖和控制器

很多基於件的框架都使用桌面的隱來描述用戶交。也是說,按鈕件應點擊事件的處理數,而文本域件應valueChange 處理數,等等。在大多數框架中,通過每一用戶交發一個請求,大部分的事件處理都委派了服務器。更聰明的框架設法在後完成這的任務,但是在有些框架中每一用戶事件都會頁面。這導致笨拙的用戶驗,因爲一個設計成UI的應用,相對於使用Model2 設計成頁面集合的應用,通常會有大量細粒度的交

這些框架的要設計目標是能從一個單獨UI件模型描述來現不同類型的用戶界。一些框架,例如,.NETJSFJavaServer FacesWindows 表單已經夠做這件事了。

2. Ajax 互操作

那麼基於件的框架如何適應Ajax 呢?表面上看,兩都是從類文檔的界面向基於UI 件的界面轉化的,所以出現是件事。如理解Ajax 的可插拔現引開發出來,這種類型的框架會大到以生成客戶端應用。這樣做有相當大的,因爲它可以避免對開發再培訓學習JavaScript 複雜性,並且它通過通的plain-oldHTML 現系統,爲陳舊的瀏覽器提供了一個替代

對於那些僅僅需要標UI 件類型的應用,這的解會工作。然而,僅有一定程靈活是不的。例如Google Maps (參見成功的很大在於它定自己UI ,從可圖到用於縮放、可出的氣球的大頭針等等。試圖使用桌面UI 件的標集合創建這些是非常困難的,即使最創建出來了也可能不會滿

是說,很多應用的確更容適應傳統範圍內的UI 件類型,這種類型的框架可以很好地爲它們服務。在靈活和方便之間得平對於很多基於代碼生成的解是相通的,也很容理解。

爲了Ajax 應用提供完的服務,框架也必須有能提供必要的數據。這可能會有更多的問題,因爲制器緊緊地綁在了服務器層上,並且緊緊在通過桌面來定的機制。有很好響Ajax 應用需要更多的來確定它自己的事件處理數,而不是服務器事件模型看起允許的那管如,在這些框架的後還是有相當大的動力無疑Ajax ,更多的這類解還會現出來。5.5.3 節將要引入的命隊列可能是JSF 及其類框架發展的一種方法,然它並不是爲了這個目的設計的。目前從我的,這些框架將客戶端的有了。

察這些框架如何在將來適應Ajax 是一件很有趣的事Sun 的內和一些JSF 廠商對於提供支持Ajax 的工具集已經生了大的興趣,.NET 表單已經可以支持一些類Ajax 的功能,並且承諾在即將來Atlas 具集中提供更多的支持(參見本章資源一節以獲得所有內容的URL

這也提出了一個問題Web 框架專門Ajax 來設計,那麼它看起來應是個什麼,這類框架還沒有出現,我們在這述的Web 框架有一爲是這類框架的先

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章