代码耻辱柱

实在忍不了了今天!今天再次浏览自己手中出来的一个页面,全部加载完需要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;
};

前面的代码是赤裸裸的反面教材!

血淋林的教训

第一:拷贝过来的代码至少要初步审视

第二:不能忽视问题,能用就行的态度绝对要不得!这个情况,虽然页面访问量不大,业务也不是很重要,一直感觉得到是有问题,但是没出大问题放着没处理,生活中的态度就体现到了工作和作品中! 自己看不下去了! 下不为例!