結構(Structure)、表現(Presentation)、行為(Behavior),是Web開發標準中的一個重要概念(以下簡稱SPB)。而模型(Model)、視圖(View)、控制器(Controller)的MVC模式呢,是圖形界面應用的重要模式之一,自然也廣泛的用在了Web應用的開發之中。
最近熱門起來的Ajax技術,又刺激了人們對于MVC模式的更多思考。本文的很多觀點得到了jasonhsu的一篇論文《基于遞歸MVC結構的Web應用軟件分析模式》的啟發,特此感謝。
現在我們要考慮技術范疇:SPB、MVC與Ajax之間的相互關系,或者說,在采用Ajax技術的Web應用中,SPB與MVC之間,應該是怎樣的一種關系。

左邊是一個標準的SPB模型,結構通過CSS渲染之后,顯示給用戶。JavaScript可以通過DOM API以及DOM Event與結構交互。
右邊則是我將JavaScript部分放大之后的情況。
大致上,我們寫一個稍微復雜一些的Ajax應用的時候,JavaScript部分,就應該一分為三。一部分是用來做DOM與Style控制。另一部分則專心與Server打交道,通常就是用XMLHTTP了,然后將獲取的數據,在瀏覽器中構建一個Model層。再一部分就是表現層的業務邏輯,主要需要處理各種Event,做出正確的反饋。
這樣的三個部分,順理成章的,也就成了Browser中的MVC了。
寫完這點東西之后,我再次看了一下jasonhsu的文章,以及Ajax in Action中的第四章《The page as an application》,發現我的思路似乎與Ajax in Action中的思路幾乎完全一致,而與jasonhsu的有所差別。
雖然人家已經說了,不過我畢竟是自己想通了這一層的,嘿嘿。
posted on 2006-01-26 23:52
讀書、思考、生活 閱讀(864)
評論(1) 編輯 收藏