Durandal在初始加載/預先加載期間加載ViewModels/View還是根據需要加載它們?Durandal是否預先加載所有ViewModels/Views或是否按需求加載?
假設我有一個非常龐大的網站,有100個或更多頁面/視圖,每個視圖都有一個相當大的viewModel。將Durandal加載所有這些?
如何在每個視圖中的數據調用,將所有這些都觸發,如果它是加載它們?
試圖瞭解迪朗達爾
Durandal在初始加載/預先加載期間加載ViewModels/View還是根據需要加載它們?Durandal是否預先加載所有ViewModels/Views或是否按需求加載?
假設我有一個非常龐大的網站,有100個或更多頁面/視圖,每個視圖都有一個相當大的viewModel。將Durandal加載所有這些?
如何在每個視圖中的數據調用,將所有這些都觸發,如果它是加載它們?
試圖瞭解迪朗達爾
Durandal根據需要加載視圖和視圖模型(按需)。因此,在您的示例中,使用100個視圖和視圖模型,您只能加載使用的視圖。觀看瀏覽器工具的「網絡」選項卡,您可以根據需要查看它們。
而且,一旦它們是本地的,它們就被緩存在瀏覽器中,這是一件好事。
如果你的viewmodel的數據調用是「激活」,那麼是的,每次你激活它們時都會被調用。有關生命週期事件的更多信息,請參閱Durandal文檔。
但是,如果您運行optimizer.exe,它將打包所有這些文件,並將它們一次性提前(縮小)到客戶端。這不是我在開發過程中所做的。但是,如果您希望在上線後預先加載所有內容,則可以將整個應用程序本地化。
對於具有100多個視圖的應用,我可能會加載,因爲任何人都不可能在單個用法中擊中所有100個視圖(我猜測)。這取決於您打算如何使用該應用程序。
我是新來迪朗達爾但我相當肯定,你有這兩個選項的行爲。
您可以根據需要加載它們,這是默認設置,或者您可以將其構建爲應用程序,將所有應用程序文件縮小爲單個程序包。不知道該構建步驟的具體細節,但大概如果你採用這種方法,那麼你的整個應用程序就會一次下載。
至於每個視圖中的數據調用,您通常會將它們踢到視圖模型的activate函數中。所以他們只會在你的視圖模型被激活時纔會發生,而不是總在前面。
因此,對於您的情況,Durandal會很好地工作。
這就是我正在尋找加載它們的需求。很高興知道它具有可供企業用於脫機使用的捆綁功能。 – 2013-03-04 16:50:46