谷歌浏览器开发者工具的使用详解
一、基础功能篇
1. elements
在elements中主要分为两大块:
A:HTML结构面板
B:操作dom样式、结构、事件的显示面板
(1)点击箭头选中一个元素,可以在HTML面板中定位到该元素,并且可以在右侧styles面板中查看和编辑该元素的样式,编辑时,效果可以实时更新,这对于前端工程师解决样式问题是个大大的福利,在HTML面板中ctrl+F,可以对html中的内容进行搜索。
(2)在右侧Computed面板中,可以查看对应元素的盒图和该元素上最终生效的样式(包含继承父级元素的样式和自己的样式)
(3)Event Listeners面板可以查看对应元素绑定的事件(旧版本谷歌浏览器不太好用,更换选取元素时该面板不会实时更新,只有重新打开审查元素才可以,新版本谷歌浏览器已解决这个问题,可以实时更新)
click是事件名称
handler里面包含事件的回调主体内容
useCapture表示该事件是否向上冒泡
还有一个方法,如果想要找到一个元素绑定的事件,我喜欢用google浏览器的search all files,搜索元素的id或class,从而找到该元素在js中绑定的事件,如下图:
(4)在HTML面板中选中一个元素,鼠标右键点击,会看到一个弹窗,里面有若干选项:
Add attribute : 为该元素添加属性
Edit attribute:修改该元素的属性
Edit as HTML : 编辑该元素(你可以重写它的整个content)甚至修改它的标签名称
:active / :hover / :focus / :visited : 点击这四项 元素被激活 / 鼠标滑过 / 获得焦点 / 链接点击之后 四个状态下元素的样式可以在右侧styles中显示
Break on:为该元素添加dom操作事件监听。包含三个选项(树结构改变、属性改变、节点移除)。这个选项的作用是帮助我们监控和定位操作元素的代码
针对Break on的示例如下:
勾选Break on -> Node removal,在B界面切换到DOM Breakpoints 选项,可以看到有注册信息。然后我们点击click me按钮触发删除div3的事件,可以看到浏览器自动为我们定位删除该元素的代码部分,并且停止执行js代码。
2. Network
Network是一个监控当前网页所有的http请求的面版,它主体部分展示的是每个http请求,每个字段表示着该请求的不同属性和状态 。
单击面板中的任意一条http信息,会在底部弹出一个新的面板,其中记录了该条http请求的详细参数:
header(表头信息、返回信息、请求基本状态)
Preview(返回的格式化文本信息)
response(返回的原始信息)
Cookies(该请求带的cookies)
Timing(请求时间变化)
3. Application
Application部分较简单,其中Frames主要向我们展示了本界面所加载的资源列表。还可以看到cookie和local storage 、session storage 等本地存储信息,在这里,我们可以自由地修改、增加、删除本地存储 。
二、进阶篇
1. Sources:谷歌浏览器开发者工具中最有用的面板
Sources面板几乎是前端开发工程师最常用到的功能面板,也是在我看来决解一般问题的主要功能面板。通常只要是开发遇到了js报错或者其他代码问题,在审视一遍自己的代码而一无所获之后,就会打开Sources进行js断点调试,而它也几乎能解决我80%的代码问题。
左侧双击某个js,在右侧的行号上点击进行打断点,上图中的1~6分别代表:
1、停止当前断点调试
2、不跳入函数中去,继续执行下一行代码(F10)
3、跳入函数中去(F11)
4、从执行的函数中跳出
5、禁用所有的断点,不做任何调试
6、程序运行时遇到异常时是否中断的开关
当你的项目已经线上,出现了一个bug,你修复了之后无法看到它真正在线上的效果,那么你可以在打开线上的项目,直接在浏览器中修改代码然后看到效果。这样的效果往往是最直接的,这种方法也能帮你省去频繁验证发布的麻烦,毕竟身为前端码农的你也一定会听到过后台(通常情况下是后台发布)大哥的抱怨:“XXX,测试通过了没,不要出现了哈,发布一次很麻烦的!”。而在谷歌浏览器打断点的文件中直接修改,你就可以验证你的代码在线上是否可行。
即使在断点时,你也可以编辑代码,按ctrl+S保存之后,你会看到断点区域的背景由白色变为浅色,而断点会重新开始执行 ,此时你就可以验证改的bug是否生效。
2. Audits
Audits面板会针对目前网页提出若干条优化的建议,这些建议分为两大类,一类是网络加载性能,另一类是界面性能。首先打开它的主界面。
Audits面板的网络优化建议参照的是雅虎前端工程师的十四条黄金建议。
(1)减少HTTP请求次数
(2)使用CDN(Content Delivery Network,内容分发网络)
(3)增加Expires Header
(4)压缩页面元素
(5)把样式表放在头上
(6)把脚本文件放在底部
(7)避免CSS表达式
(8)把JavaScript和CSS放到外部文件中
(9)减少DNS查询次数
(10)最小化JavaScript代码
(11)避免重定向
(12)删除重复的脚本文件
(13)配置ETags
(14)缓存Ajax
点击run,进行测试
3. Console
Console面版可以输出你自己代码 ,功能非常强大,详细讲解请 点击这里 查看一位大神的文章。
4. 移动开发模式
点击elements左侧小手机的图标,即可进入移动开发模式,并不能完全模拟出手机的真实情况(比如手机会弹出软键盘,引起兼容问题)
三、性能篇
一个网站的性能主要关乎两项,一是加载性能、二是执行性能。第一项可以利用Network来分析, 第二项可以利用Timeline来分析。
加载性能分析:
Request sent(发送请求):发送HTTP请求的时间(从第一个bit到最后一个bit)
Waiting(等待响应):通常是耗费时间最长的。从发送请求到收到响应之间的空隙,会受到线路、服务器距离等因素的影响。
Content Download(下载):下载HTTP响应的时间(包含头部和响应体)
四、插件篇
1. (FeHelper)WEB前端助手
谷歌浏览器开发者工具的使用详解相关推荐
- 谷歌浏览器开发者工具的快捷键详解
谷歌浏览器开发者工具的快捷键详解 孔子说:工欲善其事,必先利其器. 老子说:孔子说的对. 针对前端开发人员,谷歌浏览器的好处自然不言而喻,其强大的调试工具更是提供了很多便利,现将开发工具常用的快捷键整 ...
- Chrome浏览器开发者工具使用开发详解
文章目录 1.如何调出开发者工具 2.开发者工具初步介绍 2.1元素(Elements) 2.2控制台(Console) 2.3源代码(Source) 2.4Network详细介绍 3.Network ...
- 可视化数据库管理工具DataGrip使用详解
参考链接:https://www.hangge.com/blog/cache/detail_2829.html 日常开发中少不了各种可视化数据库管理工具.如果需要同时能连接多种数据库,大家肯定都会想到 ...
- swagger文档增强工具knife4j使用详解
本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:swagger文档增强工具knife4j使用详解 使用原生的swagger作为接口文档,功能不够强大,并且默认的ui比较简陋,不符合大众审美.所 ...
- 2022苹果开发者账号注册流程详解(公司账号)
公司开发者账号注册流程详解: 一.注册公司账号前需要提供的信息: 1)邮箱,邮箱密码: 2)微信或支付宝或储蓄卡或者信用卡(原来是必须有需要带国际支付能力银行卡(visa银行卡,实际上是转账到国外的苹 ...
- php把proto解析为文档,Protobuf 文件生成工具 Prototool 命令详解
Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...
- 2021-02-07 接口测试工具-Postman使用详解
接口测试工具-Postman使用详解 1.安装postman 官网下载地址:https://www.postman.com/downloads/ 选择好对应的版本下载,下载完后直接安装即可. 2.po ...
- 恢复【谷歌浏览器开发者工具】默认设置(亲测)
恢复[谷歌浏览器开发者工具]默认设置: 来源:恢复[谷歌浏览器开发者工具]默认设置_小枯林的博客-CSDN博客_谷歌浏览器开发者模式怎么恢复默认
- redis cluster管理工具redis-trib.rb详解
redis cluster管理工具redis-trib.rb详解 redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集 ...
最新文章
- Ubuntu中基于QT的系统网线连接状态的实时监视
- HTML中将px转换为em的语法,在JavaScript中转换EM为PX(并获得默认字体大小)
- Python命令行参数解析模块getopt使用实例
- Hadoop大数据——mapreduce的排序机制之total排序
- [组件] TopN 排行榜
- java代码上传exel,excle上传服务器并解析!求excel上传到服务器的java代码
- java 打印hashmap值_HashMap中输出key-value值得方法
- 支付宝集五福1月19日开启 超1000个商家机构齐发福卡
- matlab模拟砂轮形貌,基于多颗磨粒随机分布的虚拟砂轮建模及磨削力预测
- 计算机休眠变关机,笔记本电脑一进入睡眠休眠就关机!重启后就显 – 手机爱问...
- 忘记 Apple Watch PIN 码,如何解锁 Apple Watch?
- 文件系统管理 之 Fedora Core 4.0 HAL配置即插即用移动存储(USB及1394)的实践
- 【C++拾遗之二】fseek、ftell函数读取文件
- 多项式承诺Polynomial commitment方案汇总
- linux下mysql修改时区,linux修改系统时区
- 8box播放器的引用
- 原来小米手机的电源键不止能用来关机,这么多实用功能,别浪费了
- 美国计算机硕士不接受雅思,美国留学:不接受雅思的大学盘点
- 如何用手机访问自己的网站
- 假币问题 (java)居然有假币!!!
热门文章
- HTML- CSS-对齐-居中解决办法---kalrry
- string::find和string::npos
- C语言实现结构体输入学号姓名成绩并按照成绩高低排序输出
- 文章转载-来人间一趟,你要摘一次月亮
- 建立一个udec模型
- mybatis 批量更新update详解
- python带你实现视频采集、自动评论及自动点赞
- 因服务器调整暂时无法提供越狱,怎么解决Cydia无法加载的问题?如何处理Cydia加载失败故障?...
- 【pyhton】【airtest自动化】利用pyhton写一个双十一淘宝领猫币的脚本解放双手吧
- 为何租车企业会出项规模不一?