`
weihong01267
  • 浏览: 52519 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

(转)chrome调试

 
阅读更多


‘debugger;’ 
除了console.log,debugger就是另一个我很喜欢的快速调试的工具,将debugger加入代码之后,Chrome会自动在插入它的地方停止,很像C或者Java里面打断点。你也可以在一些条件控制中插入该调试语句,譬如: 

Java代码 
  1. if (thisThing) {  
  2.     debugger;  
  3. }  


将Objects以表格形式展示 
有时候我们需要看一些复杂的对象的详细信息,最简单的方法就是用console.log然后展示成一个列表状,上下滚动进行浏览。不过似乎用console.table展示成列表会更好呦,大概是介个样子: 

Java代码 
  1. var animals = [  
  2.     { animal: 'Horse', name: 'Henry', age: 43 },  
  3.     { animal: 'Dog', name: 'Fred', age: 13 },  
  4.     { animal: 'Cat', name: 'Frodo', age: 18 }  
  5. ];  
  6.    
  7. console.table(animals);  


多屏幕尺寸测试 
Chrome有一个非常诱人的功能就是能够模拟不同设备的尺寸,在Chrome的Inspector中点击toggle device mode按钮,然后就可以在不同的设备屏幕尺寸下进行调试咯。 

在Console快速选定DOM元素 
在Elements选择面板中选择某个DOM元素然后在Console中使用该元素也是非常常见的一个操作,Chrome Inspector会缓存最后5个DOM元素在它的历史记录中,你可以用类似于Shell中的$0等方式来快速关联到元素。譬如下图的列表中有‘item-4′, ‘item-3’, ‘item-2’, ‘item-1’, ‘item-0’这几个元素,你可以这么使用。 

获取某个函数的调用追踪记录 
JavaScript框架极大方便了我们的开发,但是也会带来大量的预定义的函数,譬如创建View的、绑定事件的等等,这样我们就不容易追踪我们自定义函数的调用过程了。虽然JavaScript不是一个非常严谨的语言,有时候很难搞清楚到底发生了啥,特别是当你需要审阅其他人的代码的时候。这时候console.trace就要起作用咯,它可以帮你进行函数调用的追踪。譬如下面的代码中我们要追踪出car对象中对于funcZ的调用过程: 

Java代码 
  1. var car;  
  2.    
  3. var func1 = function() {  
  4. func2();  
  5. }  
  6.    
  7. var func2 = function() {  
  8. func4();  
  9. }  
  10.     
  11. var func3 = function() {  
  12.    
  13. }  
  14.     
  15. var func4 = function() {  
  16. car = new Car();  
  17. car.funcX();  
  18. }  
  19.     
  20. var Car = function() {  
  21. this.brand = ‘volvo’;  
  22. this.color = ‘red’;  
  23.    
  24. this.funcX = function() {  
  25. this.funcY();  
  26. }  
  27.    
  28. this.funcY = function() {  
  29. this.funcZ();  
  30. }  
  31.    
  32. this.funcZ = function() {  
  33. console.trace(‘trace car’)  
  34. }  
  35. }  
  36.    
  37. func1();  


这边就可以清晰地看出func1调用了func2,然后调用了func4,func4创建了Car的实例然后调用了car.funcX。 

格式化被压缩的代码 
有时候在生产环境下我们发现了一些莫名奇妙的问题,然后忘了把sourcemaps放到这台服务器上,或者在看别人家的网站的源代码的时候,结果就看到了一坨不知道讲什么的代码,就像下图。Chrome为我们提供了一个很人性化的反压缩工具来增强代码的可读性,大概这么用。 

快速定位调试函数 
当我们想在函数里加个断点的时候,一般会选择这么做: 

  • 在Inspector中找到指定行,然后添加一个断点
  • 在脚本中添加一个debugger调用


不过这两种方法都存在一个小问题就是都要到对应的脚本文件中然后再找到对应的行,这样会比较麻烦。这边介绍一个相对快捷点的方法,就是在console中使用debug(funcName)然后脚本会在指定到对应函数的地方自动停止。这种方法有个缺陷就是无法在私有函数或者匿名函数处停止,所以还是要因时而异: 

Java代码 
  1. var func1 = function() {  
  2. func2();  
  3. };  
  4.    
  5. var Car = function() {  
  6. this.funcX = function() {  
  7. this.funcY();  
  8. }  
  9.    
  10. this.funcY = function() {  
  11. this.funcZ();  
  12. }  
  13. }  
  14.    
  15. var car = new Car();  


禁止不相关的脚本运行 
当我们开发现代网页的时候都会用一些第三方的框架或者库,它们几乎都是经过测试并且相对而言Bug较少的。不过当我们调试我们自己的脚本的时候也会一不小心跳到这些文件中,引发额外的调试任务。解决方案呢就是禁止这部分不需要调试的脚本运行,详情可见这篇文章:: javascript-debugging-with-black-box。 

在较复杂的调试情况下发现关键元素 
在一些复杂的调试环境下我们可能要输出很多行的内容,这时候我们习惯性的会用console.log, console.debug, console.warn, console.info, console.error这些来进行区分,然后就可以在Inspector中进行过滤。不过有时候我们还是希望能够自定义显示样式,你可以用CSS来定义个性化的信息样式: 

Java代码 
  1. console.todo = function(msg) {  
  2. console.log(‘ % c % s % s % s‘, ‘color: yellow; background - color: black;’, ‘–‘, msg, ‘–‘);  
  3. }  
  4.    
  5. console.important = function(msg) {  
  6. console.log(‘ % c % s % s % s’, ‘color: brown; font - weight: bold; text - decoration: underline;’, ‘–‘, msg, ‘–‘);  
  7. }  
  8.    
  9. console.todo(“This is something that’ s need to be fixed”);  
  10. console.important(‘This is an important message’);  


在console.log()中你可以使用%s来代表一个字符串 , %i 来代表数字, 以及 %c 来代表自定义的样式。 

监测指定函数的调用与参数 
在Chrome中可以监测指定函数的调用情况以及参数: 

Java代码 
  1. var func1 = function(x, y, z) {  
  2. };  


这种方式能够让你实时监控到底啥参数被传入到了指定函数中。 

Console中使用$进行元素查询 
在Console中也可以使用$来进行类似于querySelector那样基于CSS选择器的查询,$(‘css-selector’) 会返回满足匹配的第一个元素,而$$(‘css-selector’) 会返回全部匹配元素。注意,如果你会多次使用到元素,那么别忘了将它们存入变量中。 

Postman 
很多人习惯用Postman进行API调试或者发起Ajax请求,不过别忘了你浏览器自带的也能做这个,并且你也不需要担心啥认证啊这些,因为Cookie都是自带帮你传送的,这些只要在network这个tab里就能进行,大概这样子: 

DOM变化检测 
DOM有时候还是很操蛋的,有时候压根不知道啥时候就变了,不过Chrome提供了一个小的功能就是当DOM发生变化的时候它会提醒你,你可以监测属性变化等等: 

分享到:
评论

相关推荐

    ecdevtools是支持canvas库的chrome调试工具

    它是一个专为Chrome浏览器打造的调试插件,极大地提升了canvas元素的调试效率。 ec-devtools的核心功能在于提供了一个直观的界面,允许开发者对canvas元素的样式和物理属性进行实时修改。通过这个工具,开发者可以...

    谷歌浏览器 chrome vue 调试插件 vue-devtools 及源码

    谷歌浏览器 chrome vue 调试插件 vue-devtools chrome(谷歌浏览器)vue代码调试插件, 已打包。解压后,通过chrome扩展程序加载即可使用。 使用方法: 1、chrome浏览器输入地址“chrome://extensions/”进入扩展...

    chrome调试扩展

    Chrome调试扩展是针对谷歌浏览器(Chrome)开发的一种前端开发者工具,它极大地增强了浏览器的内置调试功能,使得开发者能够更高效地进行网页和Web应用的调试、优化与测试工作。Chrome扩展利用了Chrome的开放API,...

    Atom-xatom-debug-chrome,用于xatom调试的google chrome调试器插件。对xatom的贡献.zip

    Atom-xatom-debug-chrome是一款专为xAtom文本编辑器设计的Google Chrome调试器插件,其主要目的是增强xAtom在Web开发过程中的调试能力。这款插件允许开发者直接在xAtom环境中进行JavaScript代码的调试,提供了类似...

    使用Chrome浏览器调试Android App详解

    本文主要介绍如何使用Chrome浏览器来调试Android应用程序,特别是在集成Facebook开源的Stetho库之后,使得这一过程变得更加便捷。Chrome浏览器因其强大的开发者工具和丰富的插件深受开发者喜爱。而Stetho就是...

    Android通过Chrome Inspect调试WebView的H5 App离线.rar

    1.前端开发离不开Chrome的开发者工具,尤其是调试Android WebView时。然而,如果使用chrome://Inspect的方法,国内的开发者会惊奇地发现“空白啊”!为此,我发布过这个离线包的解决方案!可以无需FanQ就能调试了。 ...

    vue2以及vue3 chrome调试工具

    Chrome调试工具是开发者在Web开发过程中不可或缺的辅助工具,特别是对于Vue应用来说,Vue DevTools是一个必不可少的扩展。 Vue DevTools是一款专门为Vue.js设计的Chrome浏览器插件,它允许开发者深入到应用程序的...

    chrome在线调试Inspect空白问题

    Chrome在线调试工具,即Chrome DevTools,是开发者们在网页开发和优化过程中不可或缺的利器。它提供了丰富的功能,包括元素检查、网络请求分析、性能监控、源代码编辑等,极大地提升了工作效率。然而,有时在尝试...

    调试vue3 开发的 chrome 插件

    Chrome浏览器的插件开发为开发者提供了便利的工具,Vue DevTools就是其中的一个关键组件,它专门用于调试Vue应用程序。本文将深入探讨如何调试基于Vue3开发的Chrome插件。 首先,Vue DevTools是Vue.js官方推出的一...

    AngularJS Btarang chrome调试插件

    AngularJS Btarang chrome调试插件,适用于在浏览器调试ng代码

    小米快游戏调试器及环境+配到调试的chrome版本

    配合的**调试环境**包括了特定版本的**Chrome浏览器**(版本79),这是因为Chrome浏览器具有强大的开发者工具,可以与小米快游戏调试器紧密结合,提供更全面的调试支持。在Chrome 79中,开发者可以利用其内置的...

    安卓调试调试webview Chrome://inspect 404 windows离线资源包

    安卓调试调试webview(类似Chrome://inspect的功能)国内404,大家都懂的,经过我各种折腾制作完成,不会出现空白页面,无需科学那啥,不限机型,Hybrid App等H5混合应用开发必备

    react redux chrome调试插件下载V3.4.2

    React Redux Chrome调试插件是开发React应用与Redux状态管理库集成时的重要辅助工具。这个插件版本为V3.4.2,专为帮助开发者跟踪和理解应用中的Redux状态流而设计。它允许用户在Chrome浏览器中直接查看和调试Redux ...

    chrome-remote-interface, node.js的Chrome 调试协议接口.zip

    chrome-remote-interface, node.js的Chrome 调试协议接口 chrome-remote-interface 调试协议接口通过使用简单的JavaScript API提供命令和通知的简单抽象,帮助对 Chrome ( 或者其他任何适合实现的工具。) 提供了一个...

    chrome PHP调试库文件

    Chrome PHP调试库是一个非常实用的开发工具,它允许开发者在Chrome浏览器中查看PHP脚本的输出日志,极大地简化了调试过程。这个压缩包文件"chromephp-master"包含了库的核心代码,使得开发者能够轻松地将PHP应用的...

    android webview在chrome离线调试工具devtools.txt

    由于chrome调试android webview出现空白页,或者404错误,因为没有,该工具用于调试android webview

    Chrome调试手机App配置Hosts

    Chrome调试手机Andriod App,Hosts文件配置详细,使用此附件替换C:\Windows\System32\drivers\etc下的HOSTS文件即可,替换前请注意备份原来文件

    chrome远程调试需要的用户数据

    Chrome远程调试是一项强大的功能,它允许开发者在不同的设备或环境下对网页应用进行实时调试,从而提高开发效率和问题排查能力。这个"chrome远程调试需要的用户数据"压缩包文件,显然是为了帮助用户设置或更新Chrome...

    Chrome调试

    ### Chrome调试概述 #### 标题与描述解读 标题与描述均为“Chrome调试”,这表明本文档主要聚焦于介绍如何利用Google Chrome浏览器内置的开发者工具来进行网页调试。 #### 关键词解析:“Chrome 断点” - **关键词...

    Node.js-用于Node.js的Chrome调试协议接口

    Chrome 调试协议(Chrome Debugging Protocol, CDP)是 Google Chrome 浏览器提供的一种接口,用于调试运行中的浏览器进程。这个协议不仅限于浏览器,也适用于 Node.js,通过它,开发者可以实现对 Node.js 应用程序...

Global site tag (gtag.js) - Google Analytics