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.分析緩存
新聞熱點
疑難解答