>

不知道为什么在移动端无法加载,Chromesbf282.com

- 编辑:澳门博发娱乐官网 -

不知道为什么在移动端无法加载,Chromesbf282.com

Chrome开发者工具不完全指南(一、基础功能篇)

2015/06/23 · HTML5 · 2 评论 · Chrome

原文出处: 卖烧烤夫斯基   

就算你不是一名前端开发工程师,相信你也不会对Chrome浏览器感到陌生。根据最新的一份(2015/06)的浏览器市场占有率报告,Chrome近乎占有浏览器天下的半壁江山。简单、快捷使它成为了新时代人们的新宠。如果你是一名web开发人员,我推荐你使用Chrome。作为前端开发的”IDE”,你只需要搭配一个编辑器就能完成几乎所有的开发任务了。关于它的使用和功能分析要么都是大而不全,要么是巨细糜烦。本系会比较详细地分享卤煮的一些Chrome(F12开发者功能)使用经验,从一些基础的功能开始到它的一些高级性能分析器(Timeline、Profiles),在最后,将会推荐几款好的插件,希望对您的开发工作有些许的作用。如果你对一些面板模块功能已经很了解可以直接跳过去阅读你感兴趣的部分。

一、Elements
sbf282.com 1
在Element中主要分两块大的部分
A:HTML结构面板
B:操作dom样式、结构、时间的显示面板
1.在A中,每当你的鼠标移动到任何一个元素上,对应的html视图中会给该元素蓝色的背景。
sbf282.com 2
2.如果你单击选中一个元素,在A部分的底部,会显示该元素在html结构中的位置关系
sbf282.com 3
3.然后你可以在B部分的styles选项中编辑该元素的样式,并且看到html结构的实时更新(大大的福利)
sbf282.com 4
4.你可以在B界面中切换到Event Listeners选项,观察该元素绑定的事件。
sbf282.com 5

click 是事件名称

.div1 事件是索引名称(也就是通过什么绑定的)

attachment 事件来源

handler里面包含事件的毁掉主体内容

useCapture表示该事件是否向上冒泡
5.选中一个元素,右击鼠标,你会看到有一个弹出窗口出现,里面有若干选项
sbf282.com 6
Add attribut : 为该元素添加属性
Edit attribute:修改该元素的属性
Force element state: 为元素激活某种状态(主要用在可以几乎的元素比如a、input、button等)
Edit as HTML:编辑该元素(你可以重写它的整个content)甚至修改它的标签名称
中间简单的掠过…….
Break on:为该元素添加dom操作事件监听。包含三个选项(树结构改变、属性改变、节点移除)。这个选项的作用是帮助我们监控和定位操作元素的代码。请参看下图事例:
sbf282.com 7
6.在A界面的弹出选项窗口中选择node removal,在B界面切换到DOM Breakpoints 选项,可以看到有注册信息。然后我们点击click me按钮触发删除div3的事件,可以看到浏览器自动为我们定位删除该元素的代码部分,并且停止执行js代码:
sbf282.com 8

 

7.在B界面中切换到Properties选项,可以看到选中元素的各种信息(英文单词里面的介绍比较简单,就不一一介绍了)。

sbf282.com 9

 

8.点击A界面的任意地方,按快捷键ctrl+F可以看到底部有输入框,在输入框中输入你想要查找的任何内容,如果匹配到了,都回在A面板中高亮显示
sbf282.com 10
9.或者你可以点击左上角的问号图标,然后把鼠标移动到视图界面中,对准元素按下鼠标左键,对应的A界面会定位到选择的元素。
sbf282.com 11

 

 

二、Network
sbf282.com 12
1.Network是一个监控当前网页所有的http请求的面版,它主体部分展示的是每个http请求,每个字段表示着该请求的不同属性和状态
sbf282.com 13
Name:请求文件名称
Method:方法(常见的是get post)
Status:请求完成的状态
Type:请求的类型
Initiator:请求源也就是说该链接通过什么发送(常见的是Parser、Script)
Size:下载文件或者请求占的资源大小
Time:请求或下载的时间
Timeline:该链接在发送过程中的时间状态轴(我们可以把鼠标移动到这些红红绿绿的时间轴上,对应的会有它的详细信息:开始下载时间,等待加载时间,自身下载耗时)
sbf282.com 14
2.单击面板中的任意一条http信息,会在底部弹出一个新的面板,其中记录了该条http请求的详细参数header(表头信息、返回信息、请求基本状态—请参看http1.1协议内容对号入座)、Preview(返回的格式化转移后文本信息)、response(转移之前的原始信息)、Cookies(该请求带的cookies)、Timing(请求时间变化)
sbf282.com 15
3.在主面板的顶部,有一些按钮从左到右它们的功能分别是:是否启用继续http监控(默认高亮选中过)、清空主面板中的http信息、是否启用过滤信息选项(启用后可以对http信息进行筛选)、列出多种属性、只列出name和time属性、preserve log(目前不清楚啥用)、Dishable cahe(禁用缓存,所有的304返回会和fromm cahe都回变成正常的请求忽视cache conctrol 设定);
sbf282.com 16
4.最后在主面板的底部有记录了整体网络请求状态的一些基本信息
sbf282.com 17

三、Resources

Resources部分较简单,他主要向我们展示了本界面所加载的资源列表。还有cookie和local storage 、SESSION 等本地存储信息,在这里,我们可以自由地修改、增加、删除本地存储。

sbf282.com 18 至于webSql,我知道的并不多,在开发中很少用到。如果你想了解这方面的信息,我推荐你去阅读这篇博客

1 赞 28 收藏 2 评论

sbf282.com 19

三、Resources

Resources部分较简单,主要向我们展示了本界面所加载的资源列表。还有cookie和local storage 、SESSION 等本地存储信息,在这里,我们可以自由地修改、增加、删除本地存储。

sbf282.com 20

Timeline

Timeline面板是查看动态流的。在这里可以测试页面的性能问题。比如页面的渲染速度,动画的流畅度等。

sbf282.com 21

位置1:点击这个按钮开始Record,按钮变成红色,再次点击停止记录。
位置2:选择记录生成的图表模式
位置3:需要记录的类型
位置4:fps指每秒的帧数,这个可以衡量页面的渲染速度。如果超过60fps,则页面可能需要优化下了。如果超过30fps,则页面的卡顿现象会比较严重。
位置5:记录期间页面加载的比重。看哪个范围的值特别大,占用时间最长,然后有针对性的优化。

手动阻塞 URL 的加载,用于测试资源获取失败的页面效果

4. 点击登录按钮,触发鼠标的点击事件,发现程序中断在JavaScript文件中,点击面板下方的 “{}” 将代码格式化一下,此时就找到了登录按钮触发的点击事件了。

此时就可以一步一步的像下跟,知道跟到天猫的登录方法了。


 

二、Network

sbf282.com 22

1.Network是一个监控当前网页所有的http请求的面版,它主体部分展示的是每个http请求,每个字段表示着该请求的不同属性和状态sbf282.com 23

Timeline:该链接在发送过程中的时间状态轴(我们可以把鼠标移动到这些红红绿绿的时间轴上,对应的会有它的详细信息:开始下载时间,等待加载时间,自身下载耗时)

sbf282.com 24

2.单击面板中的任意一条http信息,会在底部弹出一个新的面板,其中记录了该条http请求的详细参数header(表头信息、返回信息、请求基本状态---请参看http1.1协议内容对号入座)、Preview(返回的格式化转移后文本信息)、response(转移之前的原始信息)、Cookies(该请求带的cookies)、Timing(请求时间变化)

sbf282.com 25

3.在主面板的顶部,有一些按钮从左到右它们的功能分别是:是否启用继续http监控(默认高亮选中过)、清空主面板中的http信息、是否启用过滤信息选项(启用后可以对http信息进行筛选)、列出多种属性、只列出name和time属性、preserve log(目前不清楚啥用)、Dishable cahe(禁用缓存,所有的304返回会和fromm cahe都回变成正常的请求忽视cache conctrol 设定);

sbf282.com 26

4.最后在主面板的底部有记录了整体网络请求状态的一些基本信息

sbf282.com 27

设备传感仿真

设备模式的另一个很酷的功能是模拟移动设备的传感器,例如触摸屏幕和加速计。你甚至可以恶搞你的地理位置。这个功能位于元素标签的底部,点击“show drawer”按钮,就可看见Emulation标签 --> Sensors.

sbf282.com 28

有道云真的给我印象很不好
参考这个吧

sbf282.com 29

timeline 工具详解

谷歌浏览器如今是Web开发者们所使用的最流行的网页浏览器。伴随每六个星期一次的发布周期和不断扩大的强大的开发功能,Chrome变成了一个必须的工具。大多数可能熟悉关于chorme的许多特点,例如使用console和debugger在线编辑CSS。在这篇文章中,我们将分享一些很酷的技巧,让你能够更好的改进工作流程。

查看断点处,获取的数据的值:

将鼠标光标停留在变量上面即可,也可以将变量赋值到Console的控制台上打印出来。

清除断点:

在Source面板最右侧面板中,找到Breakpoints打开,可以看到你打的断点。在断点列表出右键选择Remove all breakpoints可以一次性删除所有断点。

来源:

Network

sbf282.com 30

Network是一个监控当前网页所有的http请求的面版,它主体部分展示的是每个http请求,每个字段表示着该请求的不同属性和状态

Name:请求文件名称
Method:方法(常见的是get post)
Status:请求完成的状态
Type:请求的类型
Initiator:请求源也就是说该链接通过什么发送(常见的是Parser、Script)
Size:下载文件或者请求占的资源大小
Time:请求或下载的时间
Timeline:该链接在发送过程中的时间状态轴(我们可以把鼠标移动到这些红红绿绿的时间轴上,对应的会有它的详细信息:开始下载时间,等待加载时间,自身下载耗时)

sbf282.com 31

2.单击面板中的任意一条http信息,会在底部弹出一个新的面板,其中记录了该条http请求的详细参数header(表头信息、返回信息、请求基本状态—请参看http1.1协议内容对号入座)、Preview(返回的格式化转移后文本信息)、response(转移之前的原始信息)、Cookies(该请求带的cookies)、Timing(请求时间变化)

sbf282.com 32

sbf282.com 33

位置1:filter过滤器,可在输入框中输入关键字搜索对应请求的文件。
位置2:请求文件的列表里进行了分类,个人常用的是查看XHR的分类,查看Ajax请求。
位置3:设置网络的通信方式。默认"No thirotting"不节流。这里可以设置断网模式,或者模拟3G,4G网络等情况下页面加载的速度。网速可以在"settings"里面设置。

sbf282.com 34

5.1 设置开发者工具的位置:

Chrome刚安装好时,打开开发者工具,开发者工具默认在浏览器的左半边。

可以通过开发者工具面板右上角的设置开发者工具在浏览器中出现的位置。

视图1:开发者工具以一个独立的窗口存在;视图2:在浏览器下方显示;视图3:在浏览器右半边显示。

一、Elements

sbf282.com 35

在Element中主要分两块大的部分:HTML结构面板(A)和操作dom样式、结构、时间的显示面板(B)。

1.在A中,每当你的鼠标移动到任何一个元素上,对应的html视图中会给该元素蓝色的背景。

sbf282.com 36

2.如果你单击选中一个元素,在A部分的底部,会显示该元素在html结构中的位置关系

sbf282.com 37

3.然后在B部分的styles选项中编辑该元素的样式,并且看到html结构的实时更新。

sbf282.com 38

4.在B界面中切换到Event Listeners选项,观察该元素绑定的事件。

sbf282.com 39

click 是事件名称

.div1 事件是索引名称(也就是通过什么绑定的)

attachment 事件来源

handler里面包含事件的毁掉主体内容

useCapture表示该事件是否向上冒泡

5.选中一个元素,右击鼠标,你会看到有一个弹出窗口出现,里面有若干选项。

sbf282.com 40

Break on:为该元素添加dom操作事件监听。包含三个选项(树结构改变、属性改变、节点移除)。这个选项的作用是帮助我们监控和定位操作元素的代码。请参看下图事例:

sbf282.com 41

6.在A界面的弹出选项窗口中选择node removal,在B界面切换到DOM Breakpoints 选项,可以看到有注册信息。然后我们点击click me按钮触发删除div3的事件,可以看到浏览器自动为我们定位删除该元素的代码部分,并且停止执行js代码:

sbf282.com 42

7.在B界面中切换到Properties选项,可以看到选中元素的各种信息(英文单词里面的介绍比较简单,就不一一介绍了)。

sbf282.com 43

8.点击A界面的任意地方,按快捷键ctrl+F可以看到底部有输入框,在输入框中输入你想要查找的任何内容,如果匹配到了,都回在A面板中高亮显示

sbf282.com 44

9.或者你可以点击左上角的问号图标,然后把鼠标移动到视图界面中,对准元素按下鼠标左键,对应的A界面会定位到选择的元素。

sbf282.com 45

Elements

常用方法:
1.鼠标移动到元素上会在原网页上显示蓝色印记;
2.在开发者工具下面显示元素在HTML里的位置关系;
3.在styles选项中编辑该元素的样式,并且看到html结构的实时更新;
4.左上角的箭头,鼠标点击后,移动到网页,下面会自动跳转到相应的元素上;

选中一个元素,右击鼠标,你会看到有一个弹出窗口出现,里面有若干选项

sbf282.com 46

Add attribut: 为该元素添加属性
Edit attribute:修改该元素的属性
Force element state: 为元素激活某种状态(主要用在可以几乎的元素比如a、input、button等)
Edit as HTML:编辑该元素(你可以重写它的整个content)甚至修改它的标签名称
Break on:为该元素添加dom操作事件监听。

在element里可以调试css查看html的DOM,这些都是平常最常用的功能
然后chrome最可爱的css颜色选择,当你点击一个css的color属性后,就会出现下图,你就可以选择自己喜欢的颜色了,而且这时你移动鼠标到页面上任意位置会出现一个放大镜一样的取景器,点击就会在elelment面板上显示你点击位置的颜色相关信息。。。。。
点击color属性可以在rgbahslhexadecimal中间来回切换颜色的格式

sbf282.com 47

就像这样。。。。

sbf282.com 48

DevTools有一个可以模拟CSS状态的功能,例如元素的hover和focus,可以很容易的改变元素样式。在CSS编辑器中可以利用这个功能

sbf282.com 49

Up / Down,增加或减少 1 单位

3.Ctrl + Shift + Del 快捷键清除缓存。

选中地址栏中的URL

按快捷键:Ctrl + Shit + Del  会弹出一个清除浏览数据的弹窗,选择要清理的数据项之后,点击清除浏览数据即可。

提示:右键点击图片选择在新窗口或新标签页中打开可查看大图。

console.assert

sbf282.com 50

当你想代码满足某些条件时才输出信息到控制台,那么你大可不必写if或者三元表达式来达到目的,cosole.assert便是这样场景下一种很好的工具,它会先对传入的表达式进行断言,只有表达式为假时才输出相应信息到控制台。

var isDebug=false;
console.assert(isDebug,'开发中的log信息。。。');

在Elements面板使用CMD + F打开搜索框,除了常规字符串还可以使用选择器来选择 HTML 元素

1.首先打开京东登录页面找到登录按钮;

Chrome(F12开发者工具)是非常实用的开发辅助工具,对于前端开发者简直就是神器,但苦于开发者工具是英文界面,且没有中文,这让很多朋友都不知道怎么用。下载吧小编为大家带来Chrome开发者工具基础功能和高级性能分析器(Timeline、Profiles)的图文详解教程,下面是基础功能篇。

很抱歉,这文章是我好久之前写的 图片是存在有道云的,不知道为什么在移动端无法加载

有时候我们需要在以匿名模式打开链接,现在 Chrome 可以在你匿名打开的时候仍然保持同样的开发者工具状态,比如相同的工具栏位置、大小、面板布局、设置信息等等

2.2.2 JavaScript引擎是干什么的?

JavaScript的基本工作就是将开发者写的JavaScript代码转换成能被浏览器理解甚至能在应用程序上运用的最优化的快捷代码。比方说,当你写了 var a = 1 + 1; 这样一段代码,JavaScript引擎做的事情就是看懂(解析)你这段代码,并且将a的值变为2。

console.count

除了条件输出的场景,还有常见的场景是计数。
当你想统计某段代码执行了多少次时也大可不必自己去写相关逻辑,内置的console.count可以很地胜任这样的任务。

function foo(){
//其他函数逻辑blah blah。。。
console.count('foo 被执行的次数:');
}
foo();
foo();
foo();

sbf282.com 51

使用CMD + Click可以在文件中创建多个编辑点,使用CMD + U可以取消最后一处编辑点

3.2.4 网络(NetWork) 面板

NetWork面板可以记录页面上的网络请求的详细信息,从发起网页请求Request后分析HTTP请求后得到的各个请求资源信息(包括状态,资源信息,大小,所用时间,Request和Response等),可以根据这个进行网络性能优化。

  1. Controls 控制Network的外观和功能。
  2. Filters 控制Requests Table具体显示哪些内容。
  3. Overview 显示获取到资源的时间轴信息。
  4. Requests Table 按资源获取的前后顺序显示所有获取到的资源信息,点击资源名可以查看该资源的详细信息。
  5. Summary 显示总的请求数、数据传输量、加载时间信息。

NetWork面板的Requests Table 包含着HTTP请求和响应的具体信息,是比较常用的一块

  • Name 资源名称,点击名称可以查看资源的详情情况,包括Headers、Preview、Response、Cookies、Timing。
  • Status HTTP状态码。
  • Type 请求的资源MIME类型。
  • Initiator 标记请求是由哪个对象或进程发起的(请求源)。
  • Parser: 请求由Chrome的HTML解析器时发起的。
  • Redirect:请求是由HTTP页面重定向发起的。
  • Script:请求是由Script脚本发起的。
  • Other:请求是由其他进程发起的,比如用户点击一个链接跳转到另一个页面或者在地址栏输入URL地址。
  • Size 从服务器下载的文件和请求的资源大小。如果是从缓存中取得的资源则该列会显示(from cache)
  • Time 请求或下载的时间,从发起Request到获取到Response所用的总时间。
  • Timeline 显示所有网络请求的可视化瀑布流(时间状态轴),点击时间轴,可以查看该请求的详细信息,点击列头则可以根据指定的字段可以排序。

查看具体资源的详情

通过点击某个资源的Name可以查看该资源的详细信息,根据选择的资源类型显示的信息也不太一样,可能包括如下Tab信息:

  • Headers 该资源的HTTP头信息。
  • Preview 根据你所选择的资源类型(JSON、图片、文本)显示相应的预览。
  • Response 显示HTTP的Response信息。
  • Cookies 显示资源HTTP的Request和Response过程中的Cookies信息。
  • Timing 显示资源在整个请求生命周期过程中各部分花费的时间。

针对上面4个Tab进行详细讲解一下各个功能:

① 查看资源HTTP头信息

在Headers标签里面可以看到HTTP Request URL、HTTP Method、Status Code、Remote Address等基本信息和详细的Response Headers
、Request Headers以及Query String Parameters或者Form Data等信息。

预览响应数据

③ 查看资源HTTP的Response信息

Response标签里面可根据选择的资源类型(JSON、图片、文本、JS、CSS)显示相应资源的Response响应内容。下图显示的是当选择的资源是CSS格式时的响应内容。

④ 查看资源Cookies信息

如果选择的资源在Request和Response过程中存在Cookies信息,则Cookies标签会自动显示出来,在里面可以查看所有的Cookies信息。


 

待读

很多的技巧 英文 https://umaar.com/dev-tips/

在Sources面板中使用CMD + Opt + F / Ctrl + Shift + F可以搜索所有文件的信息

3.2.2 控制台(Console) 面板

1)查看脚本运行过程中的异常信息;

由于JavaScript属于弱语言类型,语法要求不严谨.并且JavaScript是解释型语言,在代码中输入中文的标点等错误也不会有提示,只有运行结束后才会抛出异常信息到控制台.

如果想查看具体的异常信息,直接点击右边的异常信息控制台将会把我们带到程序中错误出现的具体位置:

2)打印日志信息;

上边说到了简单的调试可以使用alert方法将想要看到的信息显示在弹窗中。但是alert存在弊端:阻断程序运行,不能显示对象的细节信息,弹出多个信息时必须点击确定才能看到下一个弹窗的信息。这些问题使用console提供的打印日志的方法可以完美解决。

Console常用的打印日志的方法有:

A) console.log(“info”)显示一般的基本日志信息,当要显示的基本日志信息太多时,可以使用console.grop()方法将日志分组;

B) Console.warn(“info”)显示带有黄色小图标的警告信息;

C) Console.error(“info”)显示带有红色小图标的错误信息;

  Console打印日志的使用场景:

A)在代码中使用console.log()打印日志信息:

B)直接在控制台上使用console.log()打印信息:

C)清除控制台中信息的方法:

直接在控制台上输出console.clear()方法人后回车即可清除控制台上的信息。还有一种方法是直接点击控制台左上方的清除日志的按钮清除日志信息。

3)运行JavaScript脚本

控制台还有一个神奇的功能就是可以运行你输入的JavaScript脚本,这一点非常实用。

实用场景一:快速验证JavaScript中的方法。

将一个小数按照输出,要求:只保留两位小数。通过查JavaScript的API得知Number对象有一个toFixed方法可以指定小数位的长度,但是又没有例子,最快的尝试方法就是在控制台上验证:

console.log(new Number("3.1415926").toFixed(2));

实用场景二:控制台中输入JavaScript方法时有提示。

  通过document获取指定id的节点的方法是document.getElementById(“id”)但是因为MyEclipse,Eclipse中在写JavaScript时可能没提示,自己写太痛苦而且还容易写错。这时,就可以在控制台上通过方法提示来补全这个方法。

如上图:我们不需要完整输入方法名,根据提示使用键盘的上,下键选择需要的方法然后回车即可。

D)Console面板中的全局搜索(快捷键Ctrl+Shift+F)

打开全局搜索,输入关键字,能够搜索到包含这个关键字的所有的文件。

应用场景:刚到一个公司,对公司的业务不熟。登录页面有几千行代码,我只想找到登录的那个方法。这时,输入登录方法名就能搜索到登录登录方法所在的页面。点击进去就能够定位到这个方法了。

console.dir

将DOM结点以JavaScript对象的形式输出到控制台
而console.log是直接将该DOM结点以DOM树的结构进行输出,与在元素审查时看到的结构是一致的。不同的展现形式,同样的优雅,各种体位任君选择反正就是方便与体贴。

console.dir(document.body);
console.log(document.body);

sbf282.com 52

sbf282.com 53

第四步:触发调试部分程序的运行,开始调试。

调试过程中常用的按钮及快捷键:

跳到下一个断点:点击Sources面板右侧的“三角按钮” 

快捷键:F8

        Ctrl+

跳到下一步(逐步跨方法):点击Sources面板右侧的第二个按钮

快捷键:F10

     Ctrl+’

跳进断点处的方法中:点击Sources面板右侧第三个按钮

快捷键:F11

        Ctrl+;

跳出正在执行的方法:点击Sources面板右侧第四个按钮

快捷键:Shift+F11

      Ctrl+Shift+;

禁用断点:点击Sources面板右侧的第五个按钮

暂停在捕获到的异常处:点击Sources面板右侧的第六个按钮,然后勾选Pause On Caught Exception

暂停在未捕获的异常处:点击Sources右侧的第六个按钮,不勾选Pause On Caught Exception.

开发者工具面板各个板块介绍

Shift + Up / Down,增加或减少 10 单位

Chrome浏览器及调试教程

  在web开发过程中,我们在写JavaScript脚本时难免会遇到各种bug,这时,我们就需要去调试我们的JavaScript脚本,然后去修改代码。最简单的调试方法就是使用alert方法,将可信息通过alert方法的弹窗显示出来。但是,alert方法有几个弊端:

1)alert方法在弹出窗口时会中断程序;

2)在循环中使用alert()方法时,如果不点击alert弹窗的确定按钮,下一个alert就不会出现;

3)alert方法在显示对象时永远只显示[Object],无法看到对象中的具体细节;

  由于alert方法存在上述缺点导致了alert方法只适合一些小程序。如果想要查看JavaScript脚本的执行过程,HTTP请求信息,执行过程中的数据信息则需要学会使用浏览器的开发者工具进行调试。

  从以下几个方面来了解Chrome浏览器:

1.Chrome浏览器简介及下载与安装;2.浏览器加载Html页面的过程;

3.Chrome浏览器开发者工具面板的介绍;4.使用Chrome开发者工具调试JavaScript脚本;5.Chrome浏览器的其他设置;


 

Profile(性能优化)

性能分析(Profiler)就是分析程序各个部分的运行时间,找出瓶颈所在,使用的方法是console.profile()。

   1: <script type="text/javascript">
   2:       function All(){
   3:             alert(11);
   4:          for(var i=0;i<10;i++){
   5:                 funcA(1000);
   6:              }
   7:         funcB(10000);
   8:       }
   9:
  10:       function funcA(count){
  11:         for(var i=0;i<count;i++){}
  12:       }
  13:
  14:       function funcB(count){
  15:         for(var i=0;i<count;i++){}
  16:       }
  17:
  18:       console.profile('性能分析器');
  19:       All();
  20:       console.profileEnd();
  21:     </script>

sbf282.com 54

Audits 加载速度优化参照的是雅虎前端工程师的十四条黄金建议

使用CMD + [ or ]可以循环切换开发者工具的各个面板

2.浏览器加载Html页面的过程

远程调试

Android与PC双向同步

支持在手机浏览器/native app中调试,支持端口转发,支持虚拟主机名映射(virtual host mapping)

准备条件:

1. Chrome32+
2. Android USB连接
3. 浏览器调试需要Android4.0+,以及Android Chrome(PC的Chrome要比Android版本高才行)
4. app调试需要Android4.4+,以及WebView.setWebContentsDebuggingEnabled(true);

步骤:

1. 开启USB调试,手机打开Chrome进入需要调试的页面
2. PC打开Chrome进入chrome://inspect,勾选Discover USB devices
3. 在设备列表中点击inspect开始远程调试
4. 计时console.time/timeEnd(str); // 成对出现,配合使用

sbf282.com 55

搜索框下会提示当前页面的涉及的 JS 文件,输入文件名即可打开

3.1 Chrome浏览器开发者工具的打开方式:

chrome快捷键 左右切换tag页

left: ctrl + pgup
right: ctrl + pgdn
new tab: ctrl + t

1.文件快速切换
快捷键Ctrl + P 就可以快速查找你的工程文件。

2.源代码内部查找
如果你想要查找源代码的内容,你可以使用Ctrl + Shift + F (Cmd + Opt + F)并输入字符串关键词。

3.到某一行
当你在Chrome DevTools中打开一个源文件,你可以指定到任意一行,用快捷键 Ctrl + G (Windows 和 Linux), 或者 Cmd + L (Mac)并输入你想跳到哪一行。
你也可以示用Ctrl + O,并输入“:”+第几行。

4.在控制台中选中元素
在DevTools中你可以手动选择DOM元素。
$() 返回符合当前CSS选择器的第一个元素,例如 $(‘div’) 会返回页面中第一个div元素。
$$() 返回符合当前CSS选择器的一串 好多个 不是一个元素。

(下面的图是我在网上搜集的,自己写肯定没有这个配图说的清楚)

在 Canary 版本中,如果鼠标长时间悬停在某个选择器上,左侧的 Elements 面板会高亮显示匹配的 DOM 元素区域

2.2.3 主要的JavaScript引擎有哪些?

WebKit的JavaScriptCore 和 Google 的 V8 引擎。

Sources

sbf282.com 56

sources面板是调试中最常用的地方。
位置1:查看页面中加载的资源文件
位置2:如果浏览器装了插件,插件所需要的JS文件会在这里显示
位置3:使用ctrl+p/ctrl+o 打开某个文件
位置4:断点的操作
位置5:查看异步请求时所设置的定时器
位置6:点击右边的加号,可以增加监听的变量。不过鼠标放到JS文件中的变量时也会显示对应的值。
位置7:设置各种不同的断点。
当勾选XHR Breakpoints里的any XHR时,页面中触发Ajax请求时都会中断。
当勾选"Event listener breakpoint" 下的 Mouse(鼠标)下的 Click (单击)事件时,触发某个按钮的点击事件就会中断。
位置8:一般线上的代码都是打包后的代码,不利于调试。点击{}后格式化该文件。

这里我再就说一下怎么使用sources这个面板进行一些js的调试:

图中的4号区域有6个按键(有的版本这几个按键位置在source下面)
当你调试时按下第一个暂停(快捷键f8),js停止运行,然后点击第三个想箭头一样的按钮(快捷键f10),javascript执行下一句,同理另一个箭头按钮表示向上执行,返回上一句js的状态。
设置断点:(当4号区域第五个按钮按下时)点击sources中间的代码行数,就会在这里设置一个断点,蓝色时表示激活断点,再次点击取消,这样刷新页面直接执行到你设置的断点处。

然后我就必须提一个比较可爱的功能了。。。。。代码美化。。。。。

以前看源码跟个鬼一样 所有js css全堆在一起,是个正常人都看不懂,但chrome在sources源代码的部分下面有一个按键 “{}” 点击后你就会发现世界美好了,,,,,

想快速的找到你点击某个特定的按钮或者链接的运行代码,只需要在你点击按钮前启用“Event listener breakpoint” Mouse:mouseover还有mouseout

sbf282.com 57

我在div上写了一个mouseover的js当js检测到有运行到mouseover时就会显示出mouseover执行的function()
你就可以看看事件是怎么执行的了
但使用这个功能可能会进入到第三方的代码库像jQuery,这时候你就需要花费一些调试的时间来到达真正的事件处理函数。最好的方法是标记“Blackbox Script”避免进入到第三方的脚本。调试时就再不会进入第三方的脚本库了,代码会一直运行到没有标记blackboxed的文件为止。你可以blackbox脚本通过右击调用栈里的第三方库的文件,并从上下文菜单中选择“Blackbox Script”即可:
然而一般我不用jquery

sbf282.com 58

sbf282.com 59

3.2.1 元素(Element)面板

console

Rainbow Text(一个小效果)

console.log('%cRainbow Text ', 'background-image:-webkit-gradient( linear, left top, right top, color-stop(0, #f22), 
color-stop(0.15, #f2f), 
color-stop(0.3, #22f), 
color-stop(0.45, #2ff),
color-stop(0.6, #2f2),
color-stop(0.75, #2f2), 
color-stop(0.9, #ff2),
color-stop(1, #f22) );
color:transparent;-webkit-background-clip: text;font-size:5em;');

console.time & console.timeEnd 计算耗时

![console.time](http://upload-images.jianshu.io/upload_images/1889471-7372ce7da5b0b345.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

对代码执行的耗时情况进行测试时,处理手工在代码中创建前后两个时间戳进行对比,在dev tools中,我们可以使用console.time与 console.timeEnd实现。

console.time("测试用时");
var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
array[i] = new Object();
};
console.timeEnd("测试用时");

sbf282.com 60

关闭Console界面

console.log:普通信息
console.log('%c你好','color:red;','小明','你知道被妈妈打了么');
console.info:提示类信息
console.error:错误信息
console.warn:警示信息

var data = [{'品名': ‘室友', '数量': 4}, {'品名': '电脑', '数量': 9}];
console.table(data);显示图表

另外,console.log() 接收不定参数,参数间用逗号分隔,最终会输出会将它们以空白字符连接。

在 JS 文件中选中一段代码,通过Ctrl + Shift + E可以在Console面板中运行这段代码

5.3 禁用页面的JavaScript脚本;

应用场景:在开发互联网电商项目时,需要一些商品图片,于是就去京东找到一个商品打开商品图片之后,想复制或者将这个图片另存为,此时,发现右键后什么都没有。

原因是,京东在图片上通过JavaScript脚本禁用了鼠标右键点击事件。此时,我们可以通过禁用当前页面的JavaScript事件,通过鼠标右键保存图片。

禁用网页JavaScript事件的方法:

1)开发者工具==》Settings

2)勾选Debugger下的Disable JavaScript 复选框。


 

console.time & console.timeEnd

输出一些调试信息是控制台最常用的功能,当然,它的功能远不止于此。当做一些性能测试时,同样可以在这里很方便地进行。
比如需要考量一段代码执行的耗时情况时,可以用console.time与 console.timeEnd来做此事。

这里借用官方文档的例子:

console.time("Array initialize");
var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
array[i] = new Object();
};
console.timeEnd("Array initialize");

sbf282.com 61

另外值得一赞的是,Chrome 控制台中原生支持类jQuery的选择器,也就是说你可以用$加上熟悉的css选择器来选择DOM节点,多么滴熟悉。

$('body')

sbf282.com 62

copy

通过此命令可以将在控制台获取到的内容复制到剪贴板。

copy(document.body)

然后你就可以到处粘了:

sbf282.com 63

这里的控制台命令只能在控制台中环境中执行,因为他不依附于任何全局变量比如window,所以其实在JS代码里是访问不了这个copy方法的,所以从代码层面来调用复制功能也就无从谈起。

sbf282.com 64

数值调整快捷键

4.2 XHR断点调试

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

Settings

勾选下面这个选项后就会在控制台中打印出所有的Ajax请求地址。

sbf282.com 65

sbf282.com 66

Element面板打开方式:

1) 打开开发者工具后选择开发者工具面板中的Element页签;

2) 打开浏览器之后,鼠标右键检查 (火狐浏览器是” 审查元素”)

常用快捷键

sbf282.com 67

chrome快捷键

sbf282.com 68

2.在登录按钮上右键属性==》检查 打开开发者工具,然后打开Sources面板

本文由胜博发-前端发布,转载请注明来源:不知道为什么在移动端无法加载,Chromesbf282.com