/**
* @description 图片base64加载
* @author lizhouquan
*/
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; //是否开启了性能统计
//异步下发起下次搜索时重置变量
var preXhrs = [],$ = 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(var i = 0 ; i 0 ? true : false;
_reqTime = ne Date()*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 = ();
var logstr = "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
function crc32 (str) {
if(typeof str=="string"){
var i,crc=0,j=0;
for(i=0;i10){
t = 1500;
}
setTimeout(function(){
if( !_dataLoaded["right"] ){
var imgs = ById(_containerRightId).getElementsByTagName("IMG");
for(var i=0;i0){
_bottag--;
}
}
if( _bottag>=2 ){
var date = ne Date();
(() + 24*3600*1000*5);
//此处设置cookie
= "B64_BOT=1; expires=" + ();
//_bottag = 0;
}else if( _bottag0 && _reqEnd>0){
.cusval = "b64_" + _dt + "_" + ( _reqEnd - _reqTime );
}
_loadState["cbr"] = 1;
callback(data, "right");
};
//请求回调方法 - 左侧
var cbl = function(data){
_reqEndL = ne Date()*1;
callback(data, "left");
};
//请求回调方法 - 预取
var cbpr = function(data){
_loadState["cbpr"] = 1;
callback(data, "right");
};
var callback = function(data, side){
_dataLoaded[side] = _hasPreload ? (bpr && br) : true;
if(data) {
if(_data[side] === undefined) {_data[side] = {}};
for(var key in data) {
if(y(key)) {
_data[side][key] = data[key];
}
}
}
if(_domLoaded[side] && _dataLoaded[side]){
imgLoad(_data[side], side);
}
};
//设置Dom加载完成
var setDomLoad = function(side){
_domLoaded[side] = true;
if(_dataLoaded[side]){
imgLoad(_data[side],side);
}
};
var predictImg = false; //右侧base64图片是否预取
//发送日志
var sendLog = function (src) {
var loghost = "?pid=315&rsv_yc_log=3&";
var n = "b64log__" + (ne Date()).getTime(),
c = indo[n] = ne Image();
d = ( = function () {
indo[n] = null;
});
= loghost + src + "&_t=" + ne Date()*1; //LOG统计地址
c = null; //释放变量c,避免产生内存泄漏的可能
};
//定义测速函数:
//请求回调 - 测速
cbs = function(data){
_rest = ne Date()*1;
if( (_rest - _rsst) < 1500 ){
(false);
}else{
(true);
}
};
//测试速度
ts = function(){
_expGroup = 3;
_rsst = ne Date()*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
}
})();
* @description 图片base64加载
* @author lizhouquan
*/
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; //是否开启了性能统计
//异步下发起下次搜索时重置变量
var preXhrs = [],$ = 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(var i = 0 ; i 0 ? true : false;
_reqTime = ne Date()*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 = ();
var logstr = "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
function crc32 (str) {
if(typeof str=="string"){
var i,crc=0,j=0;
for(i=0;i10){
t = 1500;
}
setTimeout(function(){
if( !_dataLoaded["right"] ){
var imgs = ById(_containerRightId).getElementsByTagName("IMG");
for(var i=0;i0){
_bottag--;
}
}
if( _bottag>=2 ){
var date = ne Date();
(() + 24*3600*1000*5);
//此处设置cookie
= "B64_BOT=1; expires=" + ();
//_bottag = 0;
}else if( _bottag0 && _reqEnd>0){
.cusval = "b64_" + _dt + "_" + ( _reqEnd - _reqTime );
}
_loadState["cbr"] = 1;
callback(data, "right");
};
//请求回调方法 - 左侧
var cbl = function(data){
_reqEndL = ne Date()*1;
callback(data, "left");
};
//请求回调方法 - 预取
var cbpr = function(data){
_loadState["cbpr"] = 1;
callback(data, "right");
};
var callback = function(data, side){
_dataLoaded[side] = _hasPreload ? (bpr && br) : true;
if(data) {
if(_data[side] === undefined) {_data[side] = {}};
for(var key in data) {
if(y(key)) {
_data[side][key] = data[key];
}
}
}
if(_domLoaded[side] && _dataLoaded[side]){
imgLoad(_data[side], side);
}
};
//设置Dom加载完成
var setDomLoad = function(side){
_domLoaded[side] = true;
if(_dataLoaded[side]){
imgLoad(_data[side],side);
}
};
var predictImg = false; //右侧base64图片是否预取
//发送日志
var sendLog = function (src) {
var loghost = "?pid=315&rsv_yc_log=3&";
var n = "b64log__" + (ne Date()).getTime(),
c = indo[n] = ne Image();
d = ( = function () {
indo[n] = null;
});
= loghost + src + "&_t=" + ne Date()*1; //LOG统计地址
c = null; //释放变量c,避免产生内存泄漏的可能
};
//定义测速函数:
//请求回调 - 测速
cbs = function(data){
_rest = ne Date()*1;
if( (_rest - _rsst) < 1500 ){
(false);
}else{
(true);
}
};
//测试速度
ts = function(){
_expGroup = 3;
_rsst = ne Date()*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
}
})();