/**
*@description图片base64加载
*@authorlizhouquan
*/
bds.base64=(function(){
//获取base64前置参数
var_opt=bds._base64;
//内部数据;
var_containerAllId="container",
_containerLeftId="content_left",
_containerRightId="content_right",
_BOTTAGLSNAME="BASE64_BOTTAG",
_domain=bds._base64.domain,//base64图片服务域名
_imgatch=[],//图片加载观察list,如果没有onload,进行容错
_domLoaded=[],//标识对应dom是否已下载
_data=[],//暂存请求回调数据
_dataLoaded=[],//数据是否返回
_finish=[],//是否已完成渲染
_hasSpImg=false,//是否有左侧模板sp_img走base64加载
_expGroup=0,//左侧实验组
_reqTime=0,//请求开始时间
_reqEnd=0,//请求返回时间-右侧
_reqEndL=0,//请求返回时间-左侧
_rsst=0,//请求开始时间-测速
_rest=0,//请求返回时间-测速
_dt=1,//domain类型
_loadState={},//记录imglist的状态
_hasPreload=0,//记录页面是否开启preload
_ispdc=false;//是否开启了性能统计
//异步下发起下次搜索时重置变量
varpreXhrs=[],$=indo.$;
if($){
$(indo).on("sap_begin",function(){
_imgatch=[];//图片加载观察list,如果没有onload,进行容错
_domLoaded=[];//标识对应dom是否已下载
_data=[];//暂存请求回调数据
_dataLoaded=[];//数据是否返回
_finish=[];//是否已完成渲染
_hasSpImg=false;//是否有左侧模板sp_img走base64加载
_expGroup=0;//左侧实验组
_reqTime=0;//请求开始时间
_reqEnd=0;//请求返回时间-右侧
_reqEndL=0;//请求返回时间-左侧
_rsst=0;//请求开始时间-测速
_rest=0;//请求返回时间-测速
_dt=1;//domain类型
_ispdc=false;//是否开启了性能统计
//停止正在执行的base64回调操作
for(vari=0;i0?true:false;
_reqTime=neDate()*1;
if(_expGroup==2){
//左右分别发请求
if(>0){
_hasSpImg=true;
loadJs(_domain+"image?imglist="+imgArr2.join(",")+"&cb=bds.bl");
}
if(!isPreload){
cbl({});
}
}
if(>0){
//发送请求
if(isPreload){
loadJs(_domain+"image?imglist="+imgArr.join(",")+"&cb=bds.bpr");
}else{
loadJs(_domain+"image?imglist="+imgArr.join(",")+"&cb=bds.br");
}
if(_ispdc){
if(dy){
dy(function(){
setTimeout(function(){
var_bottag=();
varlogstr="dt="+_dt+"&time="+((_reqEnd>0)?(_reqEnd-_reqTime):0)+"&bot="+_bottag+"&rcount="+;
indo._B64_REQ_LOG=((_reqEnd>0)?(_reqEnd-_reqTime):0)+"_"+;
if(_expGroup==2&&_reqEndL>0){
var_apics=ById("ala_img_pics");
var_lcount=(_apics&&dren)?:0;
logstr+="&time2="+(_reqEndL-_reqTime)+"&lcount="+_lcount;
}
if(dom()*1000||>0){
if(!isPreload){
atchReq();
}
}
};
//异步加载js
functioncrc32(str){
if(typeofstr=="string"){
vari,crc=0,j=0;
for(i=0;i10){
t=1500;
}
setTimeout(function(){
if(!_dataLoaded["right"]){
varimgs=ById(_containerRightId).getElementsByTagName("IMG");
for(vari=0;i0){
_bottag--;
}
}
if(_bottag>=2){
vardate=neDate();
(()+24*3600*1000*5);
//此处设置cookie
="B64_BOT=1;expires="+();
//_bottag=0;
}elseif(_bottag0&&_reqEnd>0){
.cusval="b64_"+_dt+"_"+(_reqEnd-_reqTime);
}
_loadState["cbr"]=1;
callback(data,"right");
};
//请求回调方法-左侧
varcbl=function(data){
_reqEndL=neDate()*1;
callback(data,"left");
};
//请求回调方法-预取
varcbpr=function(data){
_loadState["cbpr"]=1;
callback(data,"right");
};
varcallback=function(data,side){
_dataLoaded[side]=_hasPreload?(bpr&&br):true;
if(data){
if(_data[side]===undefined){_data[side]={}};
for(varkeyindata){
if(y(key)){
_data[side][key]=data[key];
}
}
}
if(_domLoaded[side]&&_dataLoaded[side]){
imgLoad(_data[side],side);
}
};
//设置Dom加载完成
varsetDomLoad=function(side){
_domLoaded[side]=true;
if(_dataLoaded[side]){
imgLoad(_data[side],side);
}
};
varpredictImg=false;//右侧base64图片是否预取
//发送日志
varsendLog=function(src){
varloghost="?pid=315&rsv_yc_log=3&";
varn="b64log__"+(neDate()).getTime(),
c=indo[n]=neImage();
d=(=function(){
indo[n]=null;
});
=loghost+src+"&_t="+neDate()*1;//LOG统计地址
c=null;//释放变量c,避免产生内存泄漏的可能
};
//定义测速函数:
//请求回调-测速
cbs=function(data){
_rest=neDate()*1;
if((_rest-_rsst)<1500){
(false);
}else{
(true);
}
};
//测试速度
ts=function(){
_expGroup=3;
_rsst=neDate()*1;
loadJs(_domain+"image?imglist=1241886729_3226161681_58,1072899117_2953388635_58,2469877062_2085031320_58,155831992_309216365_58,2539127170_1607411613_58,1160777122_283857721_58,1577144716_3149119526_58,2339041784_1038484334_58&cb=bds.bs");
};
return{
init:init,
cbl:cbl,
cbr:cbr,
cbpr:cbpr,
setDomLoad:setDomLoad,
cbs:cbs,
ts:ts,
predictImg:predictImg
}
})();