我有一个可以随时编辑的 JavaScript 资源。一旦编辑完成,我希望它能够相对较快地传播到用户的浏览器(例如可能 15 分钟左右),但是,编辑此资源的频率很少(可能每月 2 次)。
我宁愿将资源缓存在浏览器中,因为它会被频繁检索,但我也希望缓存以半定期的间隔在浏览器上重置。
我知道当我请求资源时可以传递无缓存 header ,但我想知道如果我没有传递无缓存,缓存何时会在浏览器上自动重置。
我想这对于每个浏览器来说都是独立的,但我不确定。
我尝试用 Google 搜索此内容,但我发现的大多数点击都是关于清除浏览器缓存的……这不是我要找的内容。
最佳答案
您可以将版本字符串作为 get 参数传递给脚本标记的 URL。该参数不会由静态 JavaScript 文件评估,但会强制浏览器获取新版本。
如果您不想在每次编辑源代码时分配版本字符串,您可以根据文件系统时间戳或您的 subversion 提交编号来计算它:
<script src="/script.js?time_stamp=1224147832156" type="text/javascript"></script>
<script src="/script.js?svn_version=678" type="text/javascript"></script>
关于caching - 浏览器何时自动清除外部 JavaScript 文件的缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/206783/