最近在完成项目中由于客户的服务器配置不够,带宽只有2m,在加载图片的时候出现了加载缓慢同时加载所有图片的问题,所以需要用到循环添加图片地址,减轻服务器的压力并且优化用户的使用感受。
解决方案思路如下:通过定时器(settimeout)判断第一张图是否complete ,如果为true 则加载下一张图,达到循环按序加载图片的目的
代码如下:
//imgsrc为图片资源数组
//obj为img对象例如:”.imgbox img"
function imgAdd(imgsrc,obj){
this.imgSrc=new Array();
this.imgSrc=imgsrc;
var i=0;
var timer=setInterval(function(){
console.log(i)
$(obj)[i].src=this.imgSrc[i]
if($(obj)[i].complete){
if(i==this.imgSrc.length-1){
clearInterval(timer);
}
i++;
arguments.callee();
}
},10)
}