【问题标题】:"Uncache" a resource“取消缓存”资源
【发布时间】:2014-02-03 09:17:03
【问题描述】:

使用浏览器缓存具有节省大量流量并使您的网站更快的巨大优势。但是,最大的缺点是缓存的资源不能“取消缓存”,直到它们过期并且浏览器再次请求资源。或者他们可以吗?

有没有办法明确告诉浏览器(在单独的请求或 JavaScript 等中)取消缓存某个资源?

我知道附加版本字符串,如 image.jpg?12342,但我正在寻找更优雅的替代方案。 电子标签是一个很酷的东西,但它们并没有真正缓存。我们可以省去发送实际的资源负载,但浏览器仍然会发出请求。

【问题讨论】:

  • 您可以通过发送相关标头来要求浏览器不要缓存内容。
  • 禁用缓存不是我的目标。我确实想使用浏览器缓存。它只是发生,有时我需要更新一些资源,比如脚本。然后我希望浏览器立即下载更新的资源,而不是等待到期日期。

标签: http caching etag


【解决方案1】:

您可能需要查看缓存清单,尤其是在您无权访问服务器的情况下。

是的,它主要用于“缓存”文件以供离线使用 Web 应用程序,但是,您也可以明确声明某些 URI 为非缓存,甚至对缓存清单进行版本控制也会触发重新加载指定的 URI。

CACHE MANIFEST
# Version x 

NETWORK:
uri-path.here

http://html5doctor.com/go-offline-with-application-cache/

【讨论】:

  • 如果您确实可以访问服务器,我相信您可以使用 mod_expires 来控制每个 URI 甚至文件类型的缓存。
  • 不是这个问题的真正答案,但这是我们在当前技术集下所能得到的最接近的答案。您能否补充一下,更改清单(例如更改版本注释)将触发所有资源的完全刷新?
猜你喜欢
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 2014-09-30
  • 2012-05-08
  • 2015-10-03
  • 2021-10-06
  • 2013-11-30
  • 2018-11-21
相关资源
最近更新 更多