我有一个要求调用一堆图像的请求:
<a href='www.domain1.com'><img src='../image/img1.png' onerror='imgError(this);'/></a>
<a href='www.domain2.com'><img src='../image/img2.png' onerror='imgError(this);'/></a>
问题在于调用时某些图像(~20%)还没有准备好。他们需要另一秒钟。
所以在js或jquery中,我想做的是在出错时获取失败的图像,等待1秒,然后再尝试加载那些失败的图像。如果他们在第二次尝试失败 - 哦,我很好。但我没有正确地这样做...我不应该在js中的另一个方法中调用超时吗?
function imgError(image) {
image.onerror = "";
image.src = image;
setTimeout(function () {
return true;
}, 1000);
}
答案 0 :(得分:11)
添加缓存断路器。
function imgError(image) {
image.onerror = null;
setTimeout(function (){
image.src += '?' + +new Date;
}, 1000);
}
(根据示例,这假设您的图片网址还没有查询字符串。如果确实如此,显然需要更多的工作。)