我需要向图像添加 .load 函数,但是,如果图像已被缓存,我不希望添加此函数,主要是因为在该 .load 函数中我淡入图像并隐藏加载指示器。
如果图像已经被缓存,我不需要这些。有没有办法检查它是否在缓存中?
谢谢,韦斯利
我需要向图像添加 .load 函数,但是,如果图像已被缓存,我不希望添加此函数,主要是因为在该 .load 函数中我淡入图像并隐藏加载指示器。
如果图像已经被缓存,我不需要这些。有没有办法检查它是否在缓存中?
谢谢,韦斯利
我很欣赏这个问题是不久前提出的,但我一直在寻求解决同样的问题,如果其他人遇到这个问题,这就是我解决它的方法。
我使用了一个具有 200 毫秒延迟的 window.setTimeout(),它调用了我的预加载器效果,并且在加载图像的 .load() 事件中,它所做的第一件事就是清除超时,所以如果加载很快 - 没有效果显示,但如果图像加载时间超过 200 毫秒,则会显示预加载器:
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
通常我只是将加载事件留在原处。即使图像被缓存,从您的计算机加载它也需要几毫秒(取决于大小和计算机处理速度)。加载仍然发生,只是不是来自同一来源。因此,无论是否缓存,您都应该将加载事件绑定到它。