【问题标题】:Preload php dynamic images预加载php动态图片
【发布时间】:2012-02-09 19:52:44
【问题描述】:

我有一个生成图像的 php 文件(它在图像上添加水印),名为 image.php,它接收和 id http://localhost/image.php?id=1

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

我尝试了图像预加载的正常建议,但它们似乎不起作用。我在想是因为文件名总是一样的。

更新:

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

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

我看到图像是在 Firebug 中获取的。但是当我尝试将 then 定义为 div 的背景时,它们会再次获取。我无法重用实际元素,但我的印象是浏览器缓存不应该再次获取。

再次感谢您的任何见解

【问题讨论】:

  • 您尝试了什么,“似乎不起作用”对问题的评估不是很有帮助。
  • 对不起,现在我阅读了这个问题,我意识到缺少一些信息。我会更新的。

标签: php javascript jquery


【解决方案1】:

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

发件人: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');

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 我已经更新了问题。但是我正在使用带有 css 的图像,并且我已经有了一个区分变量,即图像 id。
    • 他实际上想要缓存。问题是当前没有进行缓存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多