【问题标题】:Using script to cache image使用脚本缓存图像
【发布时间】:2012-07-26 16:11:02
【问题描述】:

我正在使用 TimThumb,这是一个用于调整图像大小的 PHP 脚本。

它会缓存图像,而我的 Web 应用程序依赖于该缓存来正常运行。

图片没有缓存在服务器上的时候,就不能正常工作了,我想知道有没有办法强制timthumb缓存一张图片,然后取回,或者有没有办法用JavaScript来确保图像首先被缓存。

【问题讨论】:

标签: php javascript jquery html wordpress


【解决方案1】:

为确保浏览器将图像预加载到缓存中,您可以使用一些原生 JavaScript 对象。

var imgPreload = new Image();
imgPreload.src = PATH_TO_IMAGE;

现在,当您为<img> 标记提供与PATH_TO_IMAGE 相同的src 属性时,它已经被浏览器预加载了。

<img src="PATH_TO_IMAGE" width="100%" >

您还可以将一些图像加载到您的 HTML 中,然后简单地使用一些 css 技巧来隐藏它们 -

  • display:none

  • visibility:hidden

然后仅在它们完全加载时显示它们。您可以为此使用.load() 函数。只需将其附加到 &lt;img&gt; 标签 -

$("#imageSelector").load(function(){
  // image was fully loaded.
});

【讨论】:

  • 我不确定如何使用这个 html 对象。我是否像使用 &lt;img src="PATH_TO"/&gt; 一样使用变量 imgPreload
  • 这个想法是当你开始显示该图像时 - 它已经被这两行代码加载了。
  • 对,但我在 Image() 上找不到任何文档;我用我的html元素返回一个字符串,当我包含imgPreload时,它返回[[object HTMLImageElement]]
  • nvm,你必须使用'&lt;img src="'+imgPreload.src+'"/&gt;'
  • @ado - 是的,对不起,我忘了解释说,除了执行这两行代码之外,您真的不需要做任何事情。如果您使用 imgPreload.src 或明确将直接 URL 传递给图像文件,图像将从相同的 URL 加载。
猜你喜欢
  • 1970-01-01
  • 2013-06-22
  • 2013-03-19
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 2023-03-29
  • 2011-08-11
相关资源
最近更新 更多