检查图像是否已使用jQuery缓存

时间:2011-08-17 17:30:49

标签: jquery image caching image-load

我需要为图像添加.load函数,但是,如果图像已经被缓存,我不希望添加此函数,主要是因为在.load函数中我淡入图像并隐藏加载指示符。 / p>

如果图像已经缓存,我就不需要了。有没有办法检查它是否在缓存中?

谢谢, 韦斯利

2 个答案:

答案 0 :(得分:3)

我很欣赏这个问题,但我一直在寻求解决同样的问题,万一有人遇到这个问题,我就是这样解决的。

我使用了一个带有200ms延迟的window.setTimeout()调用了我的预加载器效果,并且在加载图像的.load()事件中,它首先做的是清除超时,所以如果加载很快 - 未显示任何效果,但如果图像加载时间超过200ms,则显示预加载器:

var imgTmr;

imgTmr = window.setTimeout(function() {showLoading('zoomImage');}, 200);

$("#zoomImage").load(function() {
    window.clearTimeout(imgTmr);
    hideLoading();
}

$("#zoomImage").attr("src", "myLargeImage.jpg");

// The showLoading() and hideLoading() functions just display a wait graphic 
// the image being loaded in this instance has the id of zoomImage

答案 1 :(得分:1)

通常我只是将load事件留在原地。即使图像被缓存,也需要几毫秒(取决于大小和计算机处理速度)从计算机加载它。加载仍然不是来自同一来源。因此,如果缓存与否,您应该将加载事件绑定到它。