最近在做某个项目的时候,有个地方需要上传多张图片。
问题:图片上传中时,我们会给个loading提示正在上传,图片上传完毕,loading消失,图片展示出来。但是我发现,图片上传完毕loading消失后,有时候大概十几秒后图片才展示出来,这很影响用户体验。
原因:图片在上传完毕后,需要一段时间load才能展示出来,而如果图片比较大且图片数量多的情况下,就会造成延迟较长时间的问题。
解决办法:图片上传完毕后,待图片全部加载完成后再关闭loading。
实现分析:定义一个变量count,遍历所有图片,每张图片load完成后count就加1,待count等于图片的总数量,就说明所有的图片加载完成。
具体代码:
let count = 0;
let len = imgList.length;
for(let i=0;i<len;i++){
let img = new Image();
img.src = imgList[i].url;
img.onload = function(){
count++;
if(count == len){
// 图片全部加载完成
}
}
}
网友评论