首页 > 网站 > WEB开发 > 正文

代码调试总结

2024-04-27 15:17:38
字体:
来源:转载
供稿:网友
1.走读代码,捋顺逻辑。    语法错误:控制台输出,行号。    简单的逻辑错误:逻辑判断,逻辑判断分之,括号问题。if后面没有{},只会执行后面的一句。    html标签匹配    CSS:选择器层级关系,浮动,定位,兼容性  2.断点调试 , debugger. 跟踪变量值,单步走,捋顺逻辑    适用范围:大概定位出错的范围,不确定哪句代码出错    打断点方法:锁定范围的入口处,或者是关键变量执行前。如果有多个范围,都在入口打断点。    调试方法:单步调试。        1:继续执行,或者终止程序。适用于确定该断点处到下一断点处之间的代码没问题时使用。    2:执行当前这一行,单步执行。    3:进入当前这行的函数。适用于当前函数可能存在问题。    4:跳出当前函数,用于退出外部文件方法。适用于当前函数可能没有问题。    5:在光标所在行增加或删除断点。配合前4个使用    6:暂停程序,查看正在哪运行,适用于程序挂死时用3.打印日志 , 查看对象存不存在 ,值是多少。    使用范围:无法打断点调试时使用。    4.连续打印日志 , 适用于多线程,复杂逻辑,查看代码执行顺序。    使用范围:无法打断点调试时使用,单个日志无法判断或获取值得时候。    方法:加入简单的逻辑判断后,主要逻辑前后打印日志。    案例1:
$("document").ready(function () {        var flg = true;        var strPReClassName = ".p5_i";        var timeOuts = [];//定时器组        var iTimeCnt = 1;//时间系数,默认为1        console.log($(".p5_bottom"));        var bgHeight;        var div = document.getElementsByClassName("s5")[0];        /*console.log("底部高度"+$(".p5_bottom").height());  程序进来后打印日志,查看初始状态         console.log("屏幕高度"+$(window).height());*///        $(".s5").height(bgHeight);        if ($(".p5_bottom").height() && flg) {            bgHeight = $(window).height() - $(".p5_bottom").height();            $(".s5").height(bgHeight);            flg = false;            $(".test").text("底部高度5+");        }        console.log("显示区域高度:" + $(".s5").height())//        $(".test").text($(".p5_bottom").width()+"底部高度"+$(".p5_bottom").height()+"屏幕高度"+$(window).height()+"屏幕高度"+$(window).height());        /*if($(".p5_bottom").height() && flg){           $(".test").text("底部高度1");         flg=false;         }*/        hidelast();        /*if($(".p5_bottom").height() && flg){         $(".test").text("底部高度2");         flg=false;         }*/        showpic();                /*if($(".p5_bottom").height() && flg){           $(".test").text("底部高度3");           flg=false;         }*/        function showpic() {            var funTimer = function () {                if ($(".p5_bottom").height() && flg) {                    bgHeight = $(window).height() - $(".p5_bottom").height();                    $(".s5").height(bgHeight);                    flg = false;                    $(".test").text("底部高度6+" + iTimeCnt);                }                /*if($(".p5_bottom").height() && flg){                 $(".test").text("底部高度5+"+iTimeCnt);                 flg=false;                 }*/                $(strPreClassName + iTimeCnt).show();//显示聊天气泡                $('.m3')[0].play();//播放声音                clearTimeout(timeOuts[iTimeCnt]);//清除定时器                /*if($(".p5_bottom").height() && flg){                 $(".test").text("底部高度6+"+iTimeCnt);                 flg=false;                 }*/                isSroll();                /*if($(".p5_bottom").height() && flg){                 $(".test").text("底部高度7+"+iTimeCnt);                 flg=false;                 }*/                iTimeCnt++;//增加时间系数,与定时器对应//               $(".test").text($(".p5_bottom").width()+"底部高度"+$(".p5_bottom").height()+"屏幕高度"+$(window).height()+"屏幕高度"+$(window).height());            };            for (var i = 1; i < 22; i++) {                timeOuts[i] = setTimeout(funTimer, i * 500);//设置定时器                /*if($(".p5_bottom").height() && flg){                 $(".test").text("底部高度4+"+i);                 flg=false;                 }*/            }        }        function hidelast() {//隐藏所有气泡            $('.p5_i1,.p5_i2,.p5_i3,.p5_i4,.p5_i5,.p5_i6,.p5_i7,.p5_i8,.p5_i9,.p5_i10,.p5_i11,.p5_i12,.p5_i13,.p5_i14,.p5_i15,.p5_i16,.p5_i17,.p5_i18,.p5_i19,.p5_i20,.p5_i21,.ad').hide();        }        function isSroll() {            div.scrollTop = div.scrollHeight;//设置滚动条滚动        }    }); 案例说明:1.flg作用:判断是否有日志被打印,保证日志只被打印一次。举一反三:如果要打印3次日志,把flg设置为int类型,处置为0,加到3.                  2.打印日志位置:主要看高度,任何会影响高度的代码前后都要打印。多线程要单独打印,比如说定时器。                  3.日志内容:要能区分打印该日志的位子。5.分析缓存
上一篇:js数组定义与数组长度

下一篇:maven总结

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表