4

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

谢谢

4

2 回答 2

1

整套因素:

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

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

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

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

于 2010-11-18T04:05:42.087 回答
0

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

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

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

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

于 2010-11-18T04:15:05.227 回答