实在忍不了了今天!今天再次浏览自己手中出来的一个页面,全部加载完需要20来秒,场景是一个页面所有数据都是异步加载,动态数据都是异步加载,因为是异步的页面不会白屏,主要内容在前面已经加载了,不太影响使用,在控制台中看到一个请求响应时间达到18s,我次啦,怎么可能,单独访问这个请求很快 百十毫秒,就一个一个排查。忍不了了,干掉他! 从前到后一个一个排查,最终发现发现了一段复制过来的代码!惨不忍睹,不管是不是出自自己的手中还是复用的,最后是体现在自己手中的作品,此时此刻2018-01-05 15:14:36,在此立柱整理以后自己犯过的错,以示警戒!
原始代码
var dataCallback = function(json) {
if (!json) {
alert("很抱歉,服务器暂时繁忙,请您稍后再试!");
return;
} else {
if(json.iRet != 0){
alert("很抱歉,服务器暂时繁忙,请您稍后再试!");
return;
}else{
var data=json.jData.data;
var len=data.length;
if(len!=0){
var worksCPV=[];
for(var i=0;i<len;i++){
worksCPV[data[i].iContentId]=data[i].cpv;
}
var len1=worksCPV.length,
len2=$(".showCPV").length;
for(var i=0;i<len1;i++){
for(var j=0;j<len2;j++){
var dataworksId=$($(".showCPV")[j]).attr("data-worksId");
if(dataworksId==i){
if(worksCPV[i] != 'undefined' && worksCPV[i]){
$($(".showCPV")[j]).html('<i class="comm"></i>'+worksCPV[i]);
} else {
$($(".showCPV")[j]).html('<i class="comm"></i>0');
}
}
}
}
}
}
}
return;
};
初次改版后的(肯定还能更好,但至少性能上没有质的问题,但是现在体力和脑子已经跟不上了,太混乱了)
var Global = Global || {};
Global.worksCPV = [];
var dataCallback = function(json) {
if (!json) {
alert("很抱歉,服务器暂时繁忙,请您稍后再试!");
return;
} else {
if(json.iRet != 0){
alert("很抱歉,服务器暂时繁忙,请您稍后再试!");
return;
}else{
var data=json.jData.data;
var len=data.length;
if(len!=0){
for(var i=0;i<len;i++){
Global.worksCPV[data[i].iContentId]=data[i].cpv;
}
$(".showCPV").each(function(){
var tmp_id = $(this).attr('data-worksId');
try{
$(this).html('<i class="comm"></i>'+Global.worksCPV[tmp_id]);
}catch(e){
$(this).html('<i class="comm"></i>0');
}
});
}
}
}
return;
};
前面的代码是赤裸裸的反面教材!
血淋林的教训
第一:拷贝过来的代码至少要初步审视
第二:不能忽视问题,能用就行的态度绝对要不得!这个情况,虽然页面访问量不大,业务也不是很重要,一直感觉得到是有问题,但是没出大问题放着没处理,生活中的态度就体现到了工作和作品中! 自己看不下去了! 下不为例!
