2012-07-23 81 views
1

我一直在尋找Backbone Marionette,一直在模擬它的部分功能,用於我自己的純Backbone應用程序。看起來很有前途,但我不確定的一件事是Module構件和初始化器運行的順序。主要關於Backbone.history.startBackbone Marionette模塊初始化程序的順序

我想我將有一個頂層Application包含像AuthTodoComments等模塊(我通常用一個簡單的待辦事項應用程序開始嘗試框架)。每個模塊都有自己的路線。根據我的理解,他們必須在我做Backbone.history.start()之前進行初始化。我是否只需觸發所有模塊即可啓動我的頂級Application,然後開始記錄?這將確保模塊路由器在啓動Backbone.history之前被初始化。這聽起來像啓動可能不需要的模塊,從而減慢了應用程序?

當然,我知道的大多數應用程序不需要非常大,啓動速度可能是可以接受的。但是我不知道什麼最好的做法或建議

回答

2

模塊,默認情況下,父應用程序啓動,但是你可以重寫此:

子模塊可以通過設置它的 startWithParent假覆蓋此行爲。這可以防止 父母的開始呼叫啓動它。

然後您可以隨時撥打MyApp.MyModule.start()

當您撥打Application.start()時,模塊以相反的順序運行。從docs

子模塊的開始是在深度優先層次遍歷中完成的。 也就是說,Foo.Bar.Baz的層級將首先啓動Baz,然後是Bar, ,最後是`Foo。

你要打電話Backbone.history.start()調用Application.start()後,在深圳的應用實例化至少一個路由器。呼叫Backbone.history.start()(至少根據this answer from BB.Marionette's Derick Bailey

後,您應該沒有任何問題實例化其他路由器