4

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

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

谢谢,韦斯利

4

2 回答 2

3

我很欣赏这个问题是不久前提出的,但我一直在寻求解决同样的问题,如果其他人遇到这个问题,这就是我解决它的方法。

我使用了一个具有 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
于 2013-03-23T16:48:50.217 回答
1

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

于 2011-08-17T17:33:18.863 回答