浏览器什么时候自动清除外部JavaScript文件的caching?

我有一个JavaScript资源,有可能随时编辑。 一旦它被编辑,我会希望它传播到用户的浏览器相当快(也许15分钟左右),但是,这个资源正在编辑的频率是less之又less(可能是2个月)。

我宁愿资源caching在浏览器中,因为它会经常检索,但我也希望caching在半定期的间隔在浏览器上重置。

我知道我可以在请求资源时传递一个无caching头,但是我想知道如果我没有通过no-cache,caching会自动在浏览器上自动重置。

我想这将是独立的每个浏览器,但我不知道。

我试图谷歌这一点,但我发现的大部分命中是关于清除浏览器的caching…这不是我所期待的。

您可以将版本string作为getparameter passing给脚本标记的URL。 该参数不会被静态JavaScript文件评估,而是强制浏览器获取新版本。

如果您不希望在每次编辑源文件时分配版本string,则可以根据文件系统时间戳或您的Subversion提交编号来计算版本string:

<script src="/script.js?time_stamp=1224147832156" type="text/javascript"></script> <script src="/script.js?svn_version=678" type="text/javascript"></script> 

把你的JavaScript代码放在这样的版本上,当你进行更改时更新

 <script src="/code.js?ver=123" type="text/javascript"></script> 

他们将会总是得到新的版本。

HTTP提供了几种浏览器以不同方式忽略caching的控件。 如果您设置了合理的截止date,大多数浏览器将检查是否有当前版本是适当的频率。

您想在此处包含的search字词(以避免浏览器用户指令)是HTTP。

更多请参阅:

  • Web作者和网站pipe理员caching教程
  • Webcaching如何工作 ( 有点旧 ,但仍然有用)。
  • HTTP / 1.1:HTTP中的caching