如何用JavaScript清除浏览器缓存?
我们部署了最新的JavaScript代码,但是我们无法获得最新的JavaScript代码。
编者按:这个问题在以下几个地方有半重复,下面第一个问题的答案可能是最好的。这个公认的答案不再是理想的解决方案。
如何强制浏览器重新加载缓存的CSS/JS文件?
如何强制客户端刷新JavaScript文件?
动态重载本地Javascript源/ json数据
如何用JavaScript清除浏览器缓存?
我们部署了最新的JavaScript代码,但是我们无法获得最新的JavaScript代码。
编者按:这个问题在以下几个地方有半重复,下面第一个问题的答案可能是最好的。这个公认的答案不再是理想的解决方案。
如何强制浏览器重新加载缓存的CSS/JS文件?
如何强制客户端刷新JavaScript文件?
动态重载本地Javascript源/ json数据
当前回答
更新:请参见location.reload()没有参数作为这个非标准参数的背景,以及Firefox如何可能是唯一支持的现代浏览器。
您可以调用window.location.reload(true)来重新加载当前页面。它将忽略任何缓存项,并从服务器检索页面、css、图像、JavaScript等的新副本。这不会清除整个缓存,但会清除您所在页面的缓存。
但是,最好的策略是对路径或文件名进行版本控制,就像在其他各种答案中提到的那样。此外,请参阅旋转文件名:由于不使用?v=n作为版本控制方案的原因,不要使用querystring。
其他回答
尝试更改JavaScript文件的src?从这个:
<script language="JavaScript" src="js/myscript.js"></script>
:
<script language="JavaScript" src="js/myscript.js?n=1"></script>
这个方法应该强制浏览器加载JS文件的新副本。
我倾向于对框架进行版本化,然后将版本号应用于脚本和样式路径
<cfset fw.version = '001' />
<script src="/scripts/#fw.version#/foo.js"/>
如果你使用php可以做:
<script src="js/myscript.js?rev=<?php echo time();?>"
type="text/javascript"></script>
裁判:https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete
Cache.delete ()
方法
语法:
cache.delete(request, {options}).then(function(found) {
// your cache entry has been deleted if found
});
试试这个
<script language="JavaScript" src="js/myscript.js"></script>
:
<script language="JavaScript" src="js/myscript.js?n=1"></script>