JS/JQuery重试1秒后加载Img

Chr*_*ris 6 javascript jquery

我有一个请求调用一堆图像,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

问题是当进行调用时,一些图像(~20%)还没有准备好.他们需要另一秒钟.

所以在js或jquery中我想做的是在出错时获取失败的图像,等待1秒,然后再尝试加载那些失败的图像.如果他们在第二次尝试失败 - 哦,我很好.但我没有正确地这样做...我不应该在js中的另一个方法中调用超时吗?

function imgError(image) {
    image.onerror = "";
    image.src = image;

    setTimeout(function () {
        return true;
    }, 1000);
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*per 11

添加缓存断路器.

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

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