當構建應用程序時,設置控制器的最佳方式是什麼?我知道路由,事件監聽器和大多數所有的交互性都應該由控制器來管理,但是我的主控制器已經開始失去控制,並且我不知道如何將我的邏輯最好地分離成單獨的控制器,而不需要讓他們一直「運行」...初始化和解構控制器的最佳實踐
回答
將應用程序全部加載到應用程序啓動時即使使用數千個控制器,也可以使用
數百個
。這是需要時間的視圖渲染。
儘管使用sencha cmd,請確保您的應用程序儘可能最小化並且連接在一起。
在測試中,我創建了1000個簡單的控制器,就像這樣:
Ext.define('app.controller.ControllerN', {
extend: 'Ext.app.Controller',
init: function(application) {
this.control({
buttonN1: {
click: function() {
}
},
buttonN2: {
click:function(){}
},
... 20 listeners
});
}
});
我他們串聯成一個文件,並加載它們在app.js這樣的:
Ext.application({
name:'app',
controllers:[
'Controller0',
'Controller1'
... 1000 controllers
],
launch:function(){}
}
花瀏覽器刷新(Chrome)一秒鐘,直到最後一個控制器的init方法被調用。
我有類似的問題,所以我根據它將支持的業務功能劃分控制器,例如userController執行所有與用戶相關的操作,例如登錄,註銷,更新等,而cartController則執行與購物車有關的所有操作,如添加到購物車,應用優惠券,付款等。由於單個視圖可以具有與不同應用領域相關的許多功能,您可以在多個控制器中將此參考添加到此視圖中,並僅偵聽相應控制器中的相關事件。
好的,你是否將所有的控制器添加到你的主應用程序?你知道如何根據活動視圖來定義你需要哪些控制器嗎? – 2013-05-10 19:00:42
是的,我確實在'Ext.application'' controllers'數組中添加了所有控制器,以便應用程序加載所有這些控制器,並根據控制器的'control'配置找出哪個控制器將偵聽觸發事件。順便說一句,我不明白你的問題:'你知道怎麼根據活動視圖定義你需要哪個控制器嗎?'因爲控制器的'ref' config是我們定義控制器處理哪些視圖的地方。 – ThinkFloyd 2013-05-13 05:39:46
- 1. EntityManager初始化最佳實踐
- 2. JPA(Hibernate)表初始化,最佳實踐
- 3. 初始化文件最佳實踐
- 4. 編程最佳實踐:初始化或不初始化
- 5. Java:聲明和初始化的最佳實踐
- 6. AngularJS控制器的最佳實踐
- 7. 基本控制器的最佳實踐
- 8. 初始化包含IoC的實例的最佳實踐
- 9. 最佳實踐控制
- 10. 控制最佳實踐
- 11. 最佳實踐軌控制器
- 12. TabBarView多個控制器(最佳實踐)
- 13. 的DevExpress的WinForms網格初始化最佳實踐
- 14. 的Team Foundation Server:多個構建控制器最佳實踐
- 15. 初始化數據庫連接的最佳實踐
- 16. 在Java Swing中初始化代碼的最佳實踐
- 17. 在iPhone上初始化NSString的最佳實踐
- 18. MVC中Hibernate惰性屬性初始化的最佳實踐?
- 19. Java最佳實踐:控制器中呼叫的最佳數量
- 20. Spring MVC - Spring Security - 控制器通用架構 - 最佳實踐
- 21. Phonegap + Jquery Mobile:初始化/註冊最佳實踐
- 22. D語言:初始化動態多維數組最佳實踐?
- 23. 德爾福:應用程序初始化 - 最佳實踐/方法
- 24. 控制安裝量的最佳實踐
- 25. Python過程控制的最佳實踐
- 26. 解決方案結構/最佳實踐
- 27. RESTful控制器的最佳實踐CREATE和UPDATE方法
- 28. 多機器和版本控制開發的最佳實踐
- 29. 控制器和模型編碼的最佳實踐?
- 30. $控制器初始化
如何編寫1000個控制器,每個監聽20個事件?它不會像你想象的那麼快。確實,通常渲染會給你帶來瓶頸,但DeftJS的方式很好。在DeftJs中,您將視圖控制器綁定到視圖實例。在ExtJS控制器中是單身人士。 – catalinux 2013-06-09 15:35:29
@catalinux。更新了我的答案。 Singleton控制器在extjs中工作正常,即使有多個視圖實例。你如何用Deft選擇表單中的所有字段? – 2013-06-25 21:21:52