Javascript 使用jquery加载失败后如何重新加载图像?

Javascript 使用jquery加载失败后如何重新加载图像?,javascript,jquery,image,Javascript,Jquery,Image,当一次加载大量图像时,每隔一段时间就会有一些图像无法加载。如果我在一个新选项卡上访问失败图像的链接,它将加载回它未能加载的位置,可能是从缓存中加载,但我不确定。我发现下面的代码可以检测图像是否已加载或失败,我尝试使其在图像失败后重新加载图像,但它无法工作。有没有办法使代码正常工作,以便在加载失败后继续重新加载图像,直到加载为止 var$posts=$(this.responseText)//ajax响应 $posts.find(“.icon”).each(函数(){ var url=$(this

当一次加载大量图像时,每隔一段时间就会有一些图像无法加载。如果我在一个新选项卡上访问失败图像的链接,它将加载回它未能加载的位置,可能是从缓存中加载,但我不确定。我发现下面的代码可以检测图像是否已加载或失败,我尝试使其在图像失败后重新加载图像,但它无法工作。有没有办法使代码正常工作,以便在加载失败后继续重新加载图像,直到加载为止

var$posts=$(this.responseText)//ajax响应
$posts.find(“.icon”).each(函数(){
var url=$(this.attr(“数据src”)
var reload=$(this.attr(“数据src”)
测试图像(url)
函数测试图像(url){
var tester=新图像();
tester.onerror=imageNotFound;
tester.src=url;
}
函数imageNotFound(){
var img=新图像();
img.src=重新加载
控制台日志(“重新加载”)
$(这个)。懒惰({
效果:“fadeIn”,
生效时间:500,
仅可见:正确
});
}

在代码中,我使用
data src
而不是
src
,因为我使用的是lazyloading插件,调用函数后,我会在链接上重新初始化插件,如果我禁用延迟加载插件,只使用图像的src,则不会有任何区别。

在重新加载位置添加时间戳,以防止从中读取缓存:
img.src=reload+'?'+(new Date()).getTime()
。话虽如此,听起来你加载了那么多图像,请求充斥着服务器,有些图像超时了。如果是这样的话,请减少使用延迟加载显示的图像数量,或者使用分布式CDN来托管这些图像。它周围有引号。我使用谷歌api加载图像,我在服务器上加载了大约20个图像每个ajax调用和我的api键都设置为在100秒内加载超过100秒的数据,因此服务器的洪水应该不会成为问题。是的,Google应该能够处理:)浏览器网络选项卡中失败图像的错误消息是什么?