Javascript 多次替换图像src会变慢

Javascript 多次替换图像src会变慢,javascript,jquery,image,Javascript,Jquery,Image,我想测试并预加载我们的imageserver。我想看所有的图片 url为//media.our.dom/{id}/size 我设置了400个虚拟缩略图 然后我加载一个图像,一旦完成,加载下一个图像,以此类推 $(“文档”).ready(函数(){ loadimg(1000); }) 函数加载img(n){ i=n%400; $(“#img"+i).attr('src','//media.our.dom/'+n+'/thumb').load(函数(){ 如果(n

我想测试并预加载我们的imageserver。我想看所有的图片

url为//media.our.dom/{id}/size

我设置了400个虚拟缩略图


然后我加载一个图像,一旦完成,加载下一个图像,以此类推

$(“文档”).ready(函数(){
loadimg(1000);
})
函数加载img(n){
i=n%400;
$(“#img"+i).attr('src','//media.our.dom/'+n+'/thumb').load(函数(){
如果(n<50000)荷载img(n+1)
})
}
我有400张图片,每一张都被替换,一张一张,看起来光标从左到右,从上到下,然后回到左上角

它一开始工作正常,大约10张图像/秒,但速度变慢了,1000张图像后需要4秒/图像,一段时间后chrome崩溃

我认为它可能失败的原因有两个:

  • 被替换图像的数据不会发布
  • loadimg()递归调用自身,导致内存泄漏
  • 那么如果(1),我可以发布数据吗

    if(2)如何以非递归方式进行


    我不介意让更多线程同时加载图像,例如,一个线程同时加载偶数图像、一个奇数图像或更好的10/20图像,以强调imageserver。

    loadimg()递归调用自身,导致内存泄漏
    一旦缓存图像,就会立即触发
    load
    事件,一次又一次地调用相同的函数。这可能是浏览器冻结的原因。您是否尝试过将时间戳设置为图像url
    $(“#img_u”+i).attr('src','//media.our.dom/'+n+'/thumb?'+$.now())
    。仅供参考,
    $(“文档”)
    应该是
    $(文档)。
    它不是同一个图像,i=n mod 400。所以第一次得到image1,jpg,下一次得到image401.jpg,然后是image801,jpgOh对不起,你在url中使用的是
    n
    ,不是
    i
    ,我的错!