php - 我们可以通过一些代码强制清除浏览器缓存吗

标签 php performance caching

我们有一个具有大量静态资源的项目,以加快页面加载速度,我们经常使用浏览器缓存。现在我们面临的问题是每次更新一个静态内容css或者js。用户提示一些问题。我知道用户可以手动清除缓存并获得正确的东西。但是当更新文件出现时不可能。它会加载自身的新版本,我们将 php 与 wamp 一起使用。

最佳答案

首先,这取决于您发送 expires header 的时长——一天?星期?月?

无论您何时设置过期 header ,您都必须等到那个时间到了,然后浏览器才能开始联系服务器以获取新版本。所以你将不得不更改 url 正如其他人所指出的那样。

但是,还有另一个不错的选择对于 future ...

如果您设置了'cache-control: "no-cache, must-revalidate"' 和较短的过期时间,那么浏览器会在每次需要时与服务器进行检查重新显示缓存的对象,使用 “If-Modified-Since” 请求 header 发送您的服务器最初在其“Last-Modified”中与该缓存对象一起发送的最后时间戳响应头。如果对象自客户端发送的时间戳以来已更新,则服务器将发送新对象和新的Last-Modified时间戳 header 。否则,它将仅使用“304-Not Modified”响应 header 进行响应。

因此,重新验证的优点是您仍然可以节省一些带宽,并且客户端显示“陈旧”对象的风险很小,但缺点是客户端必须等待,同时您的服务器检查客户端的 If-Modified-Since header 文件的“Last-Modified”时间戳,当然,服务器必须实际检查文件系统以获得“Last-Modified”时间。因此,所保存的只是实际的内容传输带宽和传输时间。


好的阅读资源:

关于php - 我们可以通过一些代码强制清除浏览器缓存吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5498505/

相关文章:

php通过邮件登录mysql

php - 将 wamp 服务器添加到 aptana

jquery - 启用缓存的微调消息

java - spring - 使用谷歌 Guava 缓存

php - 每 10 秒运行 cron 作业 n 次然后停止

MySQL。拥有一个 1M 记录的表或 10 个表,每个表 100K 记录更好(性能)吗?

unpack 结合 Perl 中的 join 的性能

objective-c - 过度使用 NSView -> 替代方案?

java - Guava 缓存和保留检查的异常

PHP/MYSQL 根据另一个条件检索名称