2

假设我有这样的 img 标签,

<img src = "myimage.jpg" width ="50" height = "50">

当浏览器第一次遇到这种情况时,它会下载图像文件并渲染它。当再次刷新我的页面时,当浏览器遇到这一行时,它会发送再次下载文件的请求还是从缓存中读取。它将采取的所有过程顺序是什么。

我立即想到的另一个问题是,如果我更改图像内容而不是图像名称(myimage),如果浏览器读取缓存的图像,图像的内容将与我的服务器中的内容不同。如何克服这个问题?

对答案不满意。有人可以告诉我,在这些情况下,进程浏览器的所有顺序是什么?

4

2 回答 2

1

即使已经缓存了图像,浏览器也会向服务器发送图像请求(至少根据 firebug 中的网络日志)。据我所知,服务器返回一个“最后下载/修改日期”,如果时间过长(通常在 3 天左右后浏览器将重新下载缓存的内容),它可以触发新的下载。

解决此问题的最简单方法是在文件名中添加版本或发布日期,以便浏览器忽略其缓存。

于 2012-04-07T08:56:16.657 回答
0

浏览器所做的取决于第一次与图像一起返回的 HTTP 标头。根据响应的缓存设置,浏览器可以:

  • 再次请求图像,
  • 请求图像是否已更改,或
  • 在不询问服务器的情况下使用缓存中的图像
于 2012-04-07T08:50:36.510 回答