当前位置:  开发笔记 > 编程语言 > 正文

浏览器何时自动清除外部JavaScript文件的缓存?

如何解决《浏览器何时自动清除外部JavaScript文件的缓存?》经验,为你挑选了3个好方法。

我有一个JavaScript资源,可以随时进行编辑.一旦它被编辑,我希望它能够相对快速地传播到用户的浏览器(比如大概15分钟左右),但是,这种资源编辑的频率很少而且很远(可能每月2次).

我宁愿在浏览器中缓存资源,因为它会被频繁检索,但我也希望缓存能够以半定期的间隔在浏览器上重置.

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

我想这对于每个浏览器都是独立的,但我不确定.

我尝试谷歌这个,但我发现的大多数点击是关于清除浏览器的缓存...这不是我正在寻找的.



1> aemkei..:

您可以将版本字符串作为get参数传递给脚本标记的URL.该参数不会被静态JavaScript文件评估,但会强制浏览器获取新版本.

如果您不想在每次编辑源时分配版本字符串,则可以根据文件系统时间戳或subversion提交编号计算它:



   


这不是防弹的,一些代理服务器包括查询参数作为缓存的一部分.最佳解决方案是将时间戳或版本添加到文件名中.在我的网站上,我在构建时生成文件的7位校验和,因此如果文件中有任何更改,则会生成新的校验和,文件将被重命名,因此浏览器知道下载更新的文件.

2> Craig..:

在您的javascript代码上添加一个版本,在您进行更改时会更新


然后他们将始终获得新版本.


当然,这假设HTML也没有被缓存......;)

3> acrosman..:

HTTP为浏览器以不同方式忽略的缓存提供了多种控件.如果您设置了合理的到期日期,大多数浏览器都会检查他们当前版本是否具有合适的频率.

您希望在此处包含的搜索词(避免浏览器用户指示)是HTTP.

欲了解更多信息:

Web作者和网站管理员的缓存教程

Web缓存如何工作(有点旧,但仍然有用).

HTTP/1.1:HTTP中的缓存

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有