本文介绍一种JavaScript顺序加载图片的方法,通过监听图片加载状态,完成一张后再加载下一张,避免一次性加载导致服务器压力过大。该方法适用于类似Google地图的应用场景,可有效提升页面加载效率和用户体验。
JavaScript顺序加载图片的方法
本文介绍一种使用JavaScript实现图片顺序加载的方法,供读者参考。
该方法通过监听单张图片的加载状态,在确认当前图片加载完成后,再加载下一张,而不是一次性从服务器获取所有图片。这种方式有助于降低服务器并发压力,适用于如类似Google地图的应用场景,可实现小图逐张加载的效果。
function Load_pic(arr){
this.loop_f=function(i,o_file,len,f,obj){
if(i<len-1){
i=i+1;
f(i,o_file,len,obj);
}
};
this.creat_pic=function(i,o_file,len,obj){
var f=arguments.callee,
doc=document,
image = doc.createElement("img");
image.src =o_file[i];
i<len?doc.getElementsByTagName("body")[0].appendChild(image):'';
if(navigator.userAgent.indexOf("MSIE")>0){
if($.browser.version==6.0 || $.browser.version==9.0){
//IE9和IE6一样 微软真是怪异
image.onreadystatechange = function () {
if (image.readyState == "complete"){
obj.loop_f(i,o_file,len,f,obj);
}
};
}else{
ie7imagetime = window.setInterval(function(){
var rs = image.readyState;
if(rs=="complete"){
window.clearInterval(ie7imagetime);
obj.loop_f(i,o_file,len,f,obj);
}else{
return;
}
},200);
}
}else{
image.onload = function () {
if (image.complete == true){
obj.loop_f(i,o_file,len,f,obj);
}
};
}
};
if(arr.constructor===Array){
var len=arr.length,
i=0;
i<len?this.creat_pic(i,arr,len,this):'';
};
}
//调用方法
new Load_pic([
'http://gomap.dashilan.cn/jquery-mobile/map/cq/1/img_1/0_0.gif',
'http://gomap.dashilan.cn/jquery-mobile/map/cq/1/img_1/0_1.gif',
'http://gomap.dashilan.cn/jquery-mobile/map/cq/1/img_1/0_2.gif',
'http://gomap.dashilan.cn/jquery-mobile/map/cq/1/img_1/0_3.gif',
'http://gomap.dashilan.cn/jquery-mobile/map/cq/1/img_1/1_0.gif',
'http://gomap.dashilan.cn/jquery-mobile/map/cq/1/img_1/1_1.gif',
'http://gomap.dashilan.cn/jquery-mobile/map/cq/1/img_1/1_2.gif',
'http://gomap.dashilan.cn/jquery-mobile/map/cq/1/img_1/1_3.gif'
]);
//注意要调用jquery 用于判断浏览器
希望本文所述内容对读者在JavaScript程序设计方面有所帮助。