首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Javascript强制“空缓存和硬重新加载”

问从Javascript强制“空缓存和硬重新加载”
EN

Stack Overflow用户
提问于 2019-04-13 07:04:17
回答 1查看 4.2K关注 0票数 6

有很多类似的问题,但答案与我看到的不同。

这是我在Chrome中看到的:

在服务器上进行更改,并通过AJAX/Javascript提醒客户端刷新页面。客户端JS尝试location.reload(true)。它会刷新,但不会对页面进行更改。我还包括了以下内容:

代码语言:javascript
复制
window.applicationCache.swapCache();
location.reload(true);

这并没有帮助,applicationCache应该被弃用。

然后,我尝试使用修改后的URL (附加的?id=122)刷新页面,但没有正确刷新。

我手动尝试了F5和Control F5。再说一次,没有变化。

在Google Chrome的开发者模式下,我手动选择了"Normal Relaod“和"Hard Reload",但没有变化。直到我手动选择"Empty Cache and Hard Reload“,更新后的页面才能正确显示。

如何在客户端JS中以编程方式使用“空缓存和硬重新加载”来强制页面刷新?

EN

回答 1

Stack Overflow用户

发布于 2021-08-13 18:34:07

旧线程,但我发现最好的方法,因为Chrome缓存所有东西,以节省资源,并试图比你更聪明的是使用缓存破坏。这通常可以通过添加"?ver=1234“(增量)或将数据附加到对JS和CSS引用的引用的末尾来使用。是的,它不是最好的,因为它每次都会加载资源,并且不允许用户缓存,这意味着在缓存崩溃的每个页面上的加载时间略长一些。

但它确实起作用了。您可以通过JS手动使用增量生成器,也可以通过在JS/CSS引用中添加"?ver=XXXOrWhateverHere“来选择服务器端代码。

你的推荐信可能看起来像这样。

<script type="text/javascript" src="//example.com/scripts/MyFile.js?ver=12345"></script>

或者,如果你想通过Javascript添加它,就像这样(同样只有一种方式)

代码语言:javascript
复制
 <script type="text/javascript">
 var newDate = new Date();
 var AddJsToHead = document.createElement('script');
 AddJsToHead.type = 'text/javascript';
 AddJsToHead.src = 'https://example.com/scripts/myfile.js?v=' + 
 newDate.getUTCMilliseconds(); 
 document.head.appendChild(AddJsToHead);
 </script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55660455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档