javascript - 您托管的文件上的浏览器缓存

标签 javascript php jquery apache

我了解如何使用版本号并在我自己的网站上强制下载更新文件,但在这种情况下可以做什么......

我有一些我为公众使用而编写的小脚本,我有大约 200 个不同的网站在他们的网站上链接我的 js 文件。当我对文件进行更新时,我必须让他们全部手动更改文件的版本号,以便他们和他们的用户重新下载最新的更新。

我可以在我的服务器上做些什么,主机,可以强制其他站点重新下载最新版本,而无需任何手动操作?

最佳答案

There are 2 persistent problems in computing: Cache invalidation, naming things, and off-by-one errors.

如果您希望客户端在不更改文件名的情况下获取文件的新版本,那么您只需降低在缓存 header 中设置的 max-age 以便它们更频繁地检查并在合理的时间内获得新版本。

就是这样。列表结束。

您还可以通过实现 ETag header 来减轻请求负载增加的影响。客户端将在后续请求中发回,可用于检测资源是否未更改,并可选择提供 304 Not modified 响应。

但是,根据实现和运行 ETag 检查的成本,您可能只想重新提供现有资源并完成它。

或者使用 CDN,它应该为您处理所有 ETag 废话。

关于javascript - 您托管的文件上的浏览器缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59449236/

相关文章:

javascript - 如何使用 JavaScript 禁用/阻止浏览器重新加载页面图标?

php - JavaScript 数组到 PHP 数组然后在 PHP 中处理并返回

javascript - jQuery 的 hide() 和 .css ('display' 、 'none' ) 之间的区别?

php mysql_query 在插入后不返回任何内容(也没有插入任何内容)

php - MySQL 5.6 需要很长时间才能连接,即使是 "MySQL 5.6 Command Line Client"

javascript - 保持浏览器处于加载状态直到 onLoad/Ajax 结束

javascript 在 firefox 中工作,但在 chrome 中不工作

javascript - 如何查找字符串中无效的十六进制值?

javascript - Meteor连接超时调整

javascript - 有什么方法可以让javascript循环休眠吗?