我需要为图像添加.load函数,但是,如果图像已经被缓存,我不希望添加此函数,主要是因为在.load函数中我淡入图像并隐藏加载指示符。 / p>
如果图像已经缓存,我就不需要了。有没有办法检查它是否在缓存中?
谢谢, 韦斯利
答案 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事件留在原地。即使图像被缓存,也需要几毫秒(取决于大小和计算机处理速度)从计算机加载它。加载仍然不是来自同一来源。因此,如果缓存与否,您应该将加载事件绑定到它。