【发布时间】:2017-08-11 08:04:28
【问题描述】:
我正在尝试构建一个“版本更新”组件,该组件将在网站更新时显示横幅并提示用户重新加载。不幸的是,当一些用户重新加载他们的页面时,他们的页面被缓存了,所以它不能正确更新。以前我们告诉他们按 CTRL+F5,但我正在寻找一种以编程方式执行此操作的方法。
我正在使用以下代码
this.$window.location.reload(true);
谁的函数签名是这样声明的:
reload(forcedReload?: boolean): void;
这是否意味着它会跳过缓存?当我尝试使用 CTRL+F5 时,index.html 在 Chrome 的网络选项卡中显示 200,但使用 $window.location.reload(true) 显示 304 [未修改]
【问题讨论】:
-
根据MDN 看来是这样。但是在ctrl + F5的过程中除了忽略缓存之外可能会有一些不同。
-
如果您在构建过程中对资源和脚本文件进行版本控制,您仍然可以使用
$window.location.reload()始终获取最新版本。 -
@Gaara 谢谢,我对我所有的资源进行了版本控制,所以听起来这可行
-
管理服务器上的 chache 设置 - F5 就足够了。
-
@NisargShah 请写下您的评论作为答案,以便我接受。在测试更多之后,这可以按照文档工作,谢谢
标签: javascript angularjs browser-cache