$ window.location.reload(true)相当于CTRL + F5吗?

时间:2017-08-11 08:04:29

标签: javascript angularjs browser-cache

我正在尝试构建一个“版本更新”组件,该组件将在网站更新时显示横幅并提示用户重新加载。不幸的是,当某些用户重新加载他们的页面时会被缓存,因此无法正确更新。以前我们已经告诉他们按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 [未修改]

2 个答案:

答案 0 :(得分:1)

不,不是(通过测试证明)

主要区别:Ctrl-F5将导致所有附加资源也重新加载(脚本,图像......),而reload(true)则不会,主页面(html)将被请求但是资源仍然可以从缓存中加载

答案 1 :(得分:0)

根据MDN forcedReload中的window.location.reload参数设置为true

  

...导致页面始终从服务器重新加载。如果是   如果为false或未指定,则浏览器可能会从其缓存中重新加载页面。