我想以编程方式清除浏览器缓存。我这样做是因为我已经部署了新版本的应用程序,但浏览器从缓存中获取旧版本和内容。但我希望在浏览器获得新版本并从服务器加载最新的应用程序时清除缓存。
我也使用location.reload(true);
但是没有清除缓存只是重新加载当前页面。
答案 0 :(得分:2)
您可以使用版本技巧
清除浏览器缓存例如,
<script src="custom.js?version=1.1.1"></script>
只需在文件类型的末尾添加虚拟版本。它将重新加载代码
答案 1 :(得分:1)
您无法使用Angular或JQuery清除缓存。一种方法是强制您的浏览器请求新的资源。
一种方法是使用gulp-rev。
答案 2 :(得分:1)
您无法从JavaScript执行此操作。你可以做的是:
将一些变量字符串附加到内容网址的末尾。例如:
//example.com/script.js?version=1.0
或
var timestamp = new Date().getTime()
var url = "//example.com/script.js?ts=" + timestamp
这实际上欺骗了您尝试加载的URL是一个新的浏览器,它会跳过在缓存中查找它。
时间戳方法确实有一个缺点,即它不会使用浏览器缓存。
此外,请确保您的HTML文件具有正确的内容标头集,以便不缓存html本身。有关缓存控制标头的详细信息,请检出How to control web page caching, across all browsers?。