我有一个旧版本的JS文件缓存在用户的浏览器上,过期设置为10年(从那时起,我学会了如何在我的Web服务器上正确设置过期标题)。我已经对JS文件进行了更新,我希望我的用户能够从中受益。
编辑:理想情况下,我想解决此问题,而不更改承载脚本的页面上的HTML标记。
答案 0 :(得分:19)
简而言之......不。
您可以在脚本标记的源地址末尾添加内容。浏览器会将此视为与当前缓存的文件不同的文件。
<script src="/js/something.js?version=2"></script>
不确定您的其他选择。
答案 1 :(得分:6)
在HTML5中,您可以使用应用程序缓存,这样您就可以控制缓存何时到期
您需要添加清单
的路径 <!DOCTYPE HTML><html manifest="demo.appcache">
在demo.appcache文件中,您可以放置要缓存的每个文件
CACHE MANIFEST
# 2013-01-01 v1.0.0
/myjsfile.js
当您希望浏览器下载新文件时,您可以更新清单
CACHE MANIFEST
# 2013-02-01 v1.0.1
/myjsfile.js
当浏览器发现清单发生变化时,请确保使用发布日期或版本(或其他内容)修改缓存清单,它将下载其中的所有文件。
如果清单未更改,浏览器将不会更新本地文件,即使该文件已在服务器上修改。
有关详细信息,请查看HTML5 Application Cache
答案 2 :(得分:1)
您可以在网址中添加虚拟参数
<script src='oldscriptname.js?foo=bar'></script>
[e:f; B]
主要问题是,如果使用简单的“Expires”标头设置过期,那么缓存文件的浏览器甚至都不愿意与您联系。即使脚本有一种方法来破解浏览器并清除缓存,您的旧脚本也不会这样做,因此您无法将该功能发送给客户端
答案 3 :(得分:0)
您可以强制使用javascript:
重新加载缓存的文档window.location.reload(true);
true命令表示浏览器必须重新加载没有缓存的页面。