我有一个php文件生成图像(它在图像上放置水印),名为image.php,它接收并标识http://localhost/image.php?id=1。
有没有人知道使用javascript / jQuery预加载这些图片的方法?
我尝试了图像预加载的常规建议,但他们似乎没有工作。我在想它,因为文件的名称总是一样的。
更新
我正在使用this方法预加载图像(一个创建img元素的简单jquery函数)
一个警告(可能是重要的一个,所以我应该在前面说明)它是我通过css使用图像作为背景。
我看到图片是在Firebug中获取的。但是当我尝试将其定义为div的背景时,他们会再次获取。我不能重复使用实际元素,但我认为浏览器缓存不应该再次获取。
再次感谢您的任何见解
答案 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脚本呈现,则可以在提供页面之前插入随机版本号。