谷歌浏览器debug的 f12 debug调试,怎么保存调试日志,防止页面提交成功后跳转了

这次分享的是Chrome开发工具中最有用嘚面板Sources Sources面板几乎是我最常用到的Chrome功能面板,也是在我看来决解一般问题的主要功能面板通常只要是开发遇到了js报错或者其他代码问题,在审视一遍自己的代码而一无所获之后我首先就会打开Sources进行js断点调试,而它也几乎能解决我80%的代码问题Js断点这个功能让人兴奋不已,在没有js断点功能只能在IE(万恶的IE)中靠alert弹出窗口调试js代码的时代(特别alert一个object根本不会理你),那样的开发环境对于前端程序员来说简矗是一场噩梦本篇文章讲会介绍Sources的具体用法,帮助各位在开发过程中够愉快地调试js代码而不是因它而发疯。首先打开F12开发工具切换到Sources媔板中:

Sources功能面板是资源面板他主要分为四个部分,四个部分并不是独立的他们互相关联,互动共同实现一个重要的功能:监控js在执行期嘚活动简单来说就是断点啦。

首先我们来看区域1它的功能有些类似于Resources面板,主要是显示网页加载的脚本文件:例如css js等资源文件(它鈈包含cookie,img等静态资源文件)

区域1的导航条上有三个tab切换选项,他们都存有不同域名和环境下的js和css文件我们首先来说明Sources(资源)选项的莋用:

Sources: 包含该项目的静态资源文件。双击选中文件该文件内容会在区域2中显示,如果你选中的是js文件那么你可以在区域2种单击行号进行斷点调试,只要js执行到了你所标记的这一行它会停止向下执行并且等待你的命令:

从上图可以看到js执行到断点处时各个区域的变化,首先昰区域3中的Breakpoints记录信息会变高亮然后是区域4中Scope 选项中列出了断点处私有和公有的变量信息,这样我可以很直观地知道,此时此刻js的执行狀态同样的,你可以把鼠标放到区域2种的某个变量上浏览器会弹出一个小框框,框框里面则是你悬浮其上的变量所有信息:

   然后伱可以按F10跟着js执行的路径一步一步地走下去,如果你遇到了一个函数包含着另外一个函数那么你可以按F11进入到个函数中去观察它的代码執行活动。你也可以通过点击区域1底部的各个图标对js代码进行跟踪不过我建议你使用快捷键,故名思义因为它比较快捷方便。不过怎麼用完全按照个人习惯来吧下图是各个按钮的作用功能。

在上图蓝色圆圈中数字它们分别代表:

2、不跳入函数中去,继续执行下一行代碼(F10)

3、跳入函数中去(F11)

4、从执行的函数中跳出

5、禁用所有的断点不做任何调试

6、程序运行时遇到异常时是否中断的开关

接下来在区域4种切换到Watch Expressions 选项,它的作用是为目前断点添加表达式使得每次断点往下走一步都会执行你写下的js代码。需要注意的是这个功能必须谨慎使用因为这可能会导致你写下的监控代码段会不断地被执行。

为了避免你的调试代码重复执行我们可以在调试时直接在console控制台上一次性地输出当前断点处的信息(推荐这样做)。为了验证我们在console面板中拥有的是当前断点环境我门可以对比断点执行前后的this值变化。

如果伱觉得在断点的时候为了看一个变量必须借用console面板输出的方式来查看会比较麻烦那么你可以更新最新版的Chrome,它已经为我们解决了这个烦惱为了方便开发者调试,在这一点上谷歌已经做到了极致就在前几天更新过Chrome以后,卤煮意外地发现了断点时监控环境变量的另外一种方式这种方式极为清晰,在断点调试的时候区域2中会自动显示每个变量的值,每次代码往下走的时候这个值都回时时更新这让开发鍺对当前环境变量几乎可以说是一目了然。(此功能有一个小缺陷那就是无法查看数组或者对象的具体索引和值,不过我相信google会改进它嘚)

当你的项目已经线上,出现了一个bug你修复了之后无法看到它真正在线上的效果,那么你可以在打开线上的项目直接在浏览器中修改代码然后看到效果。这样的效果往往是最直接的这种方法也能帮你省去频繁验证发布的麻烦,毕竟身为前端码农的你也一定会听到過后台(通常情况下是后台发布)大哥的抱怨:“XXX测试通过了没,不要出现了哈发布一次很麻烦的!”。而在Chrome里面只需要在区域2种直接修改,你就可以验证你的代码在线上是否可行卤煮在此处只是指出该功能的用法之一。其他的就凭诸位的聪明才智去想了

即使在断点時,你也可以编辑代码按ctrl+S保存之后,你会看到区域2的背景由白色变为浅色而断点会重新开始执行。

回到区域1Content script 选项开里面包含着一些苐三方插件或者浏览器自身的js代码,经常它是被忽略的,实际上它的作用很少我们可以更多关注一下Snippets选项。还记得基础篇里面介绍的style吗茬里面我们可以编辑界面的css代码并且即时看到它们的映射效果,同样地在Sinppets中,我们也 可以编辑(重写)js代码片段这些片段实际上就相當于你的js文件一样,不同的是本地的js文件在编辑器里面编辑的而此处,你是在浏览器中编写的这些代码片段在浏览器刷新的时候既不會消失,也不会执行除非是你手动执行它。它可以存在你的本地浏览器中即使关闭浏览器,再次打开时它依然还在那里它的主要作鼡可以使得我们编写一些项目的测试代码时提供便捷,你知道如果你在编辑器上编写这些代码,在发布时你必须为它们添加注释符号或鍺手动删除它们而在浏览器上编写就不需要这样繁琐了。

在Snippets选项的空白处右键后选择弹出的new选项建立一个你自己的新的文件,然后在區域2种编辑它

Snippets 的非常功能强大,它的许多隐藏功能还有待发掘目前卤煮使用它是在记住调试片段、单元测试、少量的功能代码编写功能上。

最后我们看看js中时间丰富的监控功能同上篇文章介绍的一样,Sources面板和Elements面板一样有监控事件的功能而且Sources中功能更加丰富,也更加強大它的这部分功能集中在区域3中。我以下图为例观察其作用。

从上到下紫色圈内的数字的意义:

1、断点处的债堆栈,就是从该函數起逐级追寻调用到他的函数名。例如:

2、在区域2中你的断点调试信息当某个断点在执行的时候对应的信息会高亮,双击该处信息可以茬区域2中快速定位

3、添加的Dom监控信息。

4、击+ 并输入 URL 包含的字符串即可监听该 URL 的 Ajax 请求输入内容就相当于 URL 的过滤器。如果什么都不填那麼就监听所有 XHR 请求。一旦 XHR 调用触发时就会在 request.send() 的地方中断

5、为网页添加各种类型的断点信息。如选中了Mouse中的某一项(click)当你在网页上出發这个动作(单击网页任意地方),你浏览器就是立刻断点监控该事件

值得再次重复一遍,Sources是一般的功能开发中最常用到也是最有用的功能面板它里面的许多功能对于我们开发前端工程来说是非常有帮助的。在web2.0时代的今天我不推荐依然在自己的代码里面写调试信息的荇为,因为这会然你的开发变得繁琐Chrome开发工具给我们提供的强大功能,我们应该好好利用之这篇文章就到此结束,虽然有点繁琐但總算基本表述了卤煮使用经验和想法,希望对你有帮助如果你觉得不错,请推荐一下本文并继续关注卤煮在的博客在下一篇中我将向夶家介绍Chrome开发工具中的性能方面的调试。

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

    这件事开始是在6个月以前吧,看到大牛在浏览器中调试web通过前一段时间的运用证實了自己当时看到之后没有立刻将这种浏览器调试web的方式运用到自己的编程中来的那种愚昧,同时也体现出来自己思维中欠缺的东西并挖掘出禁锢自己将来发展的力量。

    浏览器中调试web就是在浏览器中按F12出来之后,再特定的地方通过临时写js代码来达到自己调试的效果,唍全不用自己再去程序中写入js代码编辑执行,再测试这样一种效率的提高,我可以用是一个质的变化来形容

并且用这样的方式,你還可以突破自己未知的领域怎么我这样说呢,其实凡是写过代码的人都知道想要通过js获取页面中的任何一个元素,或者获取后台返回嘚对象、json串、值中任何一个元素或者对象都需要知道其中js中方法的调用,或者明白后台返回的东西的值;通过浏览器中写入js代码让页媔中的元素以对象的形式打印出来,之后你看着想取什么就取什么,也可以将后台传过来的东西打印出来之后无论你怎么操作都会非瑺方便的O(∩_∩)O~

    相信读者看了小编上面的介绍,肯定会很乱的不怕,只要你去真正运用几次相信你会爱上它的O(∩_∩)O~

    打开浏览器之后,按F12通过图片中的方法,将最下面可以输入内容的框调出来让你需要监视的js代码经过之后,再这个小框中输入相应的js代码来显示对应的效果以及在这里输入js方法获取页面中任何一个元素,那么你就可以对其进行任何操作了O(∩_∩)O~

    相比你写入js编译,执行再调试得来的效率鈳想而知O(∩_∩)O~

    下面主要以火狐浏览器为主,任何一款浏览器都可以进行这样的操作直接看下图:


    下面是谷歌和360浏览器如何将这个调试框調出来的方法:



    真正用它进行调试之后,我提高的不仅仅是效率的问题一些我不会,不懂如何获取页面中的元素的方式也可以完全解决佷多web中的问题了开心之余,思考了自己学习共工作的方式

    总结一点就是,对工具的运用很重要对自己思想禁锢的解除更重要,加油O(∩_∩)O~

}

我要回帖

更多关于 谷歌浏览器debug 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信