【发布时间】:2013-01-21 01:07:00
【问题描述】:
我在 AngularJS 中缓存部分有问题。
在我的 HTML 页面中:
<body>
<div ng-view></div>
<body>
我的部分被加载的地方。
当我更改部分 HTML 代码时,浏览器仍会加载旧数据。
有什么解决办法吗?
【问题讨论】:
-
请注意:我遇到了一个问题,这与我的 Flask 应用程序发回的缓存控制标头有关。我通过将
app.config.update(SEND_FILE_MAX_AGE_DEFAULT=0)添加到我的flask_app.py来解决这个问题。 (我想其他网络服务器也存在类似的情况)。 -
如果您使用的是 chrome,只需执行
Ctrl+Shift+R(即硬重新加载),无论使用什么缓存机制,chrome 都会忽略它并重新获取所有脚本、样式表等。跨度> -
ctrl+shift+R 在 Chrome 中对我不起作用,但在开发人员工具的“网络”选项卡上,单击“禁用缓存”效果很好。对我来说,这是一个客户端问题,不应该像下面的许多建议那样使用服务器上的黑客来解决;它应该在存在“问题”的客户端上修复。如果您在服务器上修复它,而忘记取消修复它,生产可能会受到不利影响。
-
ctrl+shift+R 绕过正常请求的缓存。此快捷方式不处理从角度为
ng-include|ng-view|templateUrl发出的ajax 请求 -
不能要求所有终端用户在访问网站时都按Ctrl+Shift+R,那么对于非开发案例,这个问题的答案是什么? “对我来说,这是一个客户端问题,不应该像下面的许多建议那样使用服务器上的黑客来解决” - 我不同意,您无法在 Web 环境中控制客户端,因此修复生产必须是应用程序驱动的。出于这个原因,我接受了: $rootScope.$on('$viewContentLoaded', function() { $templateCache.removeAll(); });
标签: caching angularjs browser-cache