2009-09-08 60 views
0

我想建立一個Web項目,使用着名的JavaScript庫ExtJS。 目標是僅使用ExtJS(以及一些CSS和HTML)來構建整個客戶端Web應用程序。 我也想將模型 - 視圖 - 控制器結構應用於此項目的代碼。如何將MVC體系結構應用於ExtJS項目?

第一個問題:將這樣的體系結構應用於ExtJS項目有可能嗎?

第二個問題:如何輕鬆地將MVC體系結構應用於ExtJS項目?我已經閱讀this但它不回答我的問題。

ExtJS communications的文檔不提供此類提示。 在所有給出的示例中,代碼都包含在一個單獨的文件中,並且UI代碼不與應用程序邏輯代碼分開。例如,偵聽器的方法和調用服務器隨UI代碼一起提供。

實際上,歡迎將應用程序邏輯與用戶界面代碼分開的所有提示。

編輯: 另一個問題: 您認爲設計基於ExtJS的Web應用程序的最佳方式是什麼? 我沒有找到ExtJS的優秀設計師。 我發現的設計師(thisthis)似乎不可靠(第一代的代碼有時會失敗)。

謝謝

回答

6

以我的經驗,你想要考慮兩個獨立的應用程序。

在服務器端,您想要設計一個非常典型的MVC應用程序,該應用程序僅提供Web服務。你說的JSON可能很好。研究一下REST風格的做法。

在客戶端,您有一個JavaScript應用程序。如果你真的利用ExtJS,你應該只有一個初始的請求/響應來設置應用程序。從此以後的一切應該只是XHR請求到您的Web服務(並且,如果您喜歡,則延遲加載ExtJS驅動的JavaScript文件)。

當突然想要開放公共Web服務或編寫一些替代客戶端(例如iPhone應用程序)時,這種體系結構將爲自己付出代價。這些替代客戶端應該能夠依靠已經運行的Web服務。切換到客戶端,ExtJS驅動的東西 - MVC可以幫助你在這裏,但你正在從請求驅動的系統(在服務器上)進行心理上下文切換,到更開放的事件驅動的系統在瀏覽器中。

使用ExtJS社區討論的許多實踐(智能使用工廠方法,擴展內置類,模塊模式,ExtJS的模板方法等)。

組織您的JavaScript應用程序時,嘗試以MVC的方式思考。瞭解事件冒泡和relayEvents()如何工作。你有模型的東西(基本上,它們將從內置的商店類派生出來),查看東西(網格,樹等)和控制器的東西(通常附在某個容器上)。通信在extjs.eu。)

當涉及到重量級客戶端應用程序設計時,肯定有不止一種方法。但是如果你想要認真地利用ExtJS的潛力,花點時間閱讀一些事情是值得的。通常閱讀關於GUI編程的文章或書籍 - 編寫ExtJS應用程序與編寫傳統桌面應用程序相比編寫Web應用程序更爲相似。

在這個領域,「網絡」的東西變得非常簡單 - 你只是在服務器端處理數據。棘手的問題是弄清楚如何組織和優化瀏覽器內代碼。

-1

使用一些庫,使javascript OOP lang。然後使用MVC模式。你也可以使用Ext-GWT在OOP Java上開發Web。

+2

JavaScript已經是一種面向對象的語言。不知道你的意思是... – 2009-09-13 06:52:53

+0

ExtJS甚至使用經典的繼承建模。 – 2011-02-26 00:32:38