预加载php动态图像

时间:2012-02-09 19:52:44

标签: php javascript jquery

我有一个php文件生成图像(它在图像上放置水印),名为image.php,它接收并标识http://localhost/image.php?id=1

有没有人知道使用javascript / jQuery预加载这些图片的方法?

我尝试了图像预加载的常规建议,但他们似乎没有工作。我在想它,因为文件的名称总是一样的。

更新

我正在使用this方法预加载图像(一个创建img元素的简单jquery函数)

一个警告(可能是重要的一个,所以我应该在前面说明)它是我通过css使用图像作为背景。

我看到图片是在Firebug中获取的。但是当我尝试将其定义为div的背景时,他们会再次获取。我不能重复使用实际元素,但我认为浏览器缓存不应该再次获取。

再次感谢您的任何见解

2 个答案:

答案 0 :(得分:2)

这应该像向图像发送正确的标题一样简单:

来自:http://www.php.net/manual/en/function.header.php#93377

// seconds, minutes, hours, days
$expires = 60*60*24*14;
header("Pragma: public");
header("Cache-Control: maxage=".$expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');

答案 1 :(得分:-1)

您是否使用php文件的网址作为图片的src?如果问题是由于名称始终相同,则添加虚拟版本变量将阻止缓存。只需附加到src

即可
"&v=" + "(new Date()).getTime()"

由于它需要Javascript,因此您只能在页面加载后执行此操作。或者,如果页面由某些后端PHP脚本呈现,则可以在提供页面之前插入随机版本号。