实在忍不了了今天!今天再次浏览自己手中出来的一个页面,全部加载完需要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; };
前面的代码是赤裸裸的反面教材!
血淋林的教训
第一:拷贝过来的代码至少要初步审视
第二:不能忽视问题,能用就行的态度绝对要不得!这个情况,虽然页面访问量不大,业务也不是很重要,一直感觉得到是有问题,但是没出大问题放着没处理,生活中的态度就体现到了工作和作品中! 自己看不下去了! 下不为例!