8

我有一个请求调用一堆像这样的图像:

<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);
}
4

1 回答 1

12

添加缓存断路器。

function imgError(image) {
    image.onerror = null;
    setTimeout(function (){
        image.src += '?' + +new Date;
     }, 1000);
}

(根据示例,这假设您的图像 URL 还没有查询字符串。如果有,显然需要做更多的工作。)

于 2013-10-30T03:28:52.037 回答