谷歌Chrome浏览器开发者工具教程之JS调试篇
来源:IT生涯     阅读:886
织梦二开
发布于 2018-08-22 23:41
查看主页

Chrome开发工具中最有使用的面板Sources。Sources面板几乎是最常使用到的Chrome功能面板,也是处理一般问题的主要功能面板。通常只需是开发遇到了js报错或者者其余代码问题,在审视一遍代码而一无所获之后打开Sources进行js断点调试,几乎能处理8成的代码问题。

js断点功能让人兴奋不已,以前只能在IE中靠alert弹出窗口调试js代码,那样的开发环境对于前台程序员来说简直是一场噩梦。本篇详情Sources的具体使用法,帮助各位在开发过程中够愉快地调试js代码,而不是因它而发疯。

首先打开F12开发工具切换到Sources面板中

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

1、中止断点调试

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

3、跳入函数中去(F11)

4、从执行的函数中跳出

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

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

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

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

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

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

谷歌Chrome浏览器开发者工具教程之JS调试篇

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

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

function a () {

b();

}

function b() {

c();

}

function c() {

//在该处断点,查看call stack

}

a->b->c.

call stack 从上到下的顺序就是

c

b

a

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

3、增加的Dom监控信息。

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

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

值得再次重复一遍,Sources是一般的功能开发中最常使用到也是最有使用的功能面板,它里面的许多功能对于我们开发前台工程来说是非常有帮助的。在web2.0时代的今天,我不推荐仍然在自己的代码里面写调试信息的行为,由于这会然你的开发变得繁琐。Chrome开发工具给我们提供的强大功能,我们应该好好利使用之

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
CSSL刺激战场战报 JS代表触手直播出征TGA夏季总决赛
程序员必读:那些大公司和小公司的程序员究竟区别在哪呢?
KISTLER压机备份设置文件操作步骤
C/C++编译优化经验
前台面试每日 3+1 —— 第539天
首页
搜索
订单
购物车
我的