【问题标题】:Understanding image caching in web browsers了解 Web 浏览器中的图像缓存
【发布时间】:2011-05-11 19:44:54
【问题描述】:

影响网络浏览器中图像缓存的完整因素有哪些? Web 开发人员对此有多少控制权,浏览器设置有多少?对于其他类型的资产(即脚本、音频)是否有不同的考虑?

谢谢

【问题讨论】:

    标签: html image caching browser assets


    【解决方案1】:

    整套因素:

    • 影响缓存的 HTTP 标头
    • 用户代理(浏览器)的内置缓存行为
      • 可以通过用户设置进行修改,具体取决于 UA
      • 包括隐私浏览模式,每个会话可能会使用然后清除单独的缓存
    • 用户的操作,例如手动清除缓存

    Web 开发人员几乎没有控制权,但这很好。请记住,缓存是为了最终用户的利益而进行的,通常是为了减少页面加载时间,而且您通常无法了解每个用户的所有注意事项。

    可以控制的一点是过期时间和无缓存行为。它们分别指定用户想要重新获取资源,因为它预计已经更改或由于其他原因不应该被缓存。

    浏览器可能会以不同于其他资源的方式处理图像(主要是在未指定时默认过期时间不同),但您可以为任何资源发送 HTTP 标头。

    【讨论】:

      【解决方案2】:

      从客户端,检查客户端浏览器是否将 If-Modified-Since 标头发送到服务器。如果客户端发送标头,IIS 将响应 304 Not Modified,因此客户端将使用其本地缓存来显示/使用文件。

      客户端设置对此负责。 IE -> 工具 -> Internet 选项 -> 浏览历史记录 -> 设置 -> 自动将确保发生这种情况。不同的浏览器会有不同的区域进行此设置。

      对于脚本/音频,您可以将它们放在一个特殊的内容文件夹中,并简单地从您的服务器设置内容过期,以便服务器在请求时向客户端发送适当的信息以缓存文件。不过,这不是开发人员设置。

      开发人员设置通常用于动态文件。基于语言[在 ASP.NET 中,OutputCache 指令创建不同的缓存头],这会有所不同。

      【讨论】:

        猜你喜欢
        • 2015-12-07
        • 2014-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-20
        • 2011-11-07
        • 2011-09-27
        • 1970-01-01
        相关资源
        最近更新 更多