2015-04-23 166 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