2015-04-23 85 views
2

在AngularJS框架下開發Firefox是非常煩人的。爲什麼?因爲你只是刷新和JavaScript重新加載,但多數情況下HTML不是這種情況。因此,每次更改模板中的單個位時,都必須手動清除緩存以確保正在應用更改。AngularJS Firefox HTML緩存

任何關於爲什麼Firefox/Angular會這樣做的想法,以及如何防止它?

爲了讓事情變得更簡單,我還嘗試了'Hard Refresh'擴展(https://addons.mozilla.org/en-US/firefox/addon/hard-refresh/?src=search),並且還嘗試了Ctrl + F5組合,但即使這樣也不足以真正刷新頁面。我目前發現的唯一方法是通過首選項菜單,在隱私選項卡中,選擇(僅)要清除的緩存。

+0

我個人從來沒有問題,按Ctrl + F5,但它可以是版本依賴。 – estus

+0

也許SO依賴?因爲我有最新版本,但是我在GNU/Linux下。 – DanielM

回答

2

Firefox devtoolsFirebug都可以暫時禁用緩存。

如果您使用全功能Web服務器進行開發,則可以從服務器端禁用緩存,因此您不僅限於調試器面板。

+1

不知道如何從服務器端做到這一點。使用Angular,您無法真正控制模板加載,是嗎?無論如何,我幾乎一直都在開放devtools,你知道嗎?所以我認爲這已經足夠好了。謝謝! – DanielM

+0

你在使用哪臺服務器?不,Angular只控制模板緩存,直到頁面重新加載(不是你的情況) – estus

+0

IIS。 (而且我需要更多的角色才能發佈它......) – DanielM

0

你嘗試使用$ templateCache清除它,在你的app.run函數中添加以下代碼:

$rootScope.$on('$viewContentLoaded', function() { 
     $templateCache.removeAll(); 
}); 
+0

$ templateCache不是持久的,它不會在頁面重新加載之間產生任何影響(儘管它可能對無F5模板開發以及其他緩存禁用技術有用)。 – estus