我正在尝试构建一个“版本更新”组件,该组件将在网站更新时显示横幅并提示用户重新加载。不幸的是,当某些用户重新加载他们的页面时会被缓存,因此无法正确更新。以前我们已经告诉他们按CTRL + F5,但我正在寻找一种以编程方式执行此操作的方法。
我正在使用以下代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Click the button to print the current page.</p>
<button onclick="myFunction()">Print this page</button>
<div class="col-xs-4"></div>
<div class="col-xs-1 original"><font color="red"><strong id="s1" >Original</strong></font></div>
其功能签名的声明如下:
this.$window.location.reload(true);
这是否意味着它会跳过缓存?当我尝试使用CTRL + F5时,index.html在Chrome的“网络”标签中显示200,但使用reload(forcedReload?: boolean): void;
显示304 [未修改]
答案 0 :(得分:1)
不,不是(通过测试证明)
主要区别:Ctrl-F5
将导致所有附加资源也重新加载(脚本,图像......),而reload(true)
则不会,主页面(html)将被请求但是资源仍然可以从缓存中加载
答案 1 :(得分:0)
根据MDN forcedReload
中的window.location.reload
参数设置为true
:
...导致页面始终从服务器重新加载。如果是 如果为false或未指定,则浏览器可能会从其缓存中重新加载页面。