图像在页面上加载了多少次?

时间:2011-05-26 12:41:33

标签: php jquery image caching

我正在JQuery中创建一个图像浏览器插件。基本上,我的页面上会有一个完整大小的图像,下面会有一个图像滚动条,其中包含一堆可用图像的缩略图。当用户单击缩略图时,它将向上移动到完整大小的框。

我打算通过HTML / CSS调整缩略图大小,而不是存储单独的缩略图文件。我的问题是,如果浏览器将我的所有图像加载到缩略图滚动条中,当它被推入全尺寸查看器时是否必须重新加载每个图像?

我知道通常答案是否定的 - 一旦浏览器下载了文件,它就可用了。但是,我不只是使用静态图像。在图像上有一些预处理,所以我将通过PHP发送它们。

例如,我的一个缩略图的src可能是www.mydomain.com/prepImage.php?id=1

然后PHP将进行一些处理并返回如下:

header("Content-Type: image/jpeg");
echo $StringifiedJPEGFile;

这样从PHP返回文件会强制浏览器每次将图像的源设置为该链接时重新下载图像吗?

3 个答案:

答案 0 :(得分:3)

  

这样从PHP返回文件会强制浏览器每次将图像的源设置为该链接时重新下载图像吗?

每页只加载一次图像。即便如此,还取决于您发送的标题。

您可以调整上次修改的标头,过期标头,设置etag标头等,以便只在需要时重新加载。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

答案 1 :(得分:0)

是否可以缓存图像取决于浏览器设置和缓存控制标头。除此之外,任何图像都是相同的处理,无论是从PHP加载还是其他东西。可以根据HTTP缓存GET请求。

答案 2 :(得分:0)

您可以通过添加虚拟查询字符串来加载新图像,例如

  <img src="my_image.php?a=432345" id="my_image" onclick="this.src='my_image.php?a=68945' " />

只是一个例子,为了使它每次都新,数字应该唯一改变。