2013-05-13 66 views
3

我剛開始玩Durandal,使用入門套件。我添加了一個非常簡單的新視圖/視圖模型組合(基本上是樣本中現有模型的複製/粘貼)和mapNav()路徑。如何在添加新視圖時正確刷新Durandal SPA Web應用程序?

當我嘗試刷新瀏覽器時,問題正在發生...新視圖根本不顯示。它不在導航欄中,也不能通過輸入地址欄直接導航到視圖。我知道代碼是(或應該是?!)正確的,因爲如果我在不同的瀏覽器中訪問該頁面,則所有內容都會顯示爲應該顯示的內容。

Durandal在做某種瀏覽器緩存嗎?有時F5或Ctrl + F5可以刷新,有時不會。我也無法深入鏈接到特定的「頁面」。即:

http://localhost:52625/#/newpage只是給了我一個空白

我缺少什麼?

+0

哪些是你使用 – 2013-05-13 23:37:01

+0

我觀察火狐,Chrome,IE9和類似行爲的瀏覽器。 IE9似乎是「最難」刷新。 – 2013-05-14 05:35:44

回答

3

大多數瀏覽器都會緩存通過RequireJS返回的模塊,這就是Durandal獲取模塊和查看模型的方式。

CTRL + F5沒有幫助,因爲這只是刷新初始頁面 - 所有模塊仍然要求使用JavaScript(RequireJS),所以他們通常是從緩存中提取第一。

我發現最好在瀏覽器的開發工具中禁用緩存。這樣做將確保所有網絡請求都直接從源而不是從緩存中加載。

更多信息請參考這個問題:Debugging when using require.js cache

另一種解決方案是配置RequireJS設置其urlArgs屬性:https://stackoverflow.com/a/8479953/91189

這個解決方案工作正常,但使得它更難調試,至少在Chrome,因爲每次模塊加載時斷點都會丟失,因爲它在技術上每次都會請求不同的文件。

5

我在Chrome中使用的選項是打開開發人員工具並右鍵單擊刷新按鈕。有一個'空緩存和硬重新加載'的選項,它總是爲我解決這個問題。我不知道在IE中的等效,但試試這個,看看它是否修復你的問題。

enter image description here

+0

令人驚歎!我使用Chrome開發人員工具多年,我剛剛看到新的刷新功能! – 2015-08-18 11:44:39

相關問題