首页 > 其他分享 >chrome调试技巧收集

chrome调试技巧收集

时间:2023-07-16 11:22:25浏览次数:40  
标签:请求 chrome 函数 源码 断点 调试 技巧

1. 编辑和重新发送请求

1.1 copy as cURL

要用 replay xhr 重复发送请求(不要重复手动填写表单)

请求 copy as cURL,可在命令行测试请求,适用于后端测试请求,也可用于重复发送请求

编辑请求

copy as cURL之后,在命令行,既可以修改 header,也可以修改 body

1.2 chrome requestly插件

Intercept & Modify HTTPs Requests - Redirect URL, Modify Headers, Mock APIs, Modify Response, Insert Scripts

1.3 edge和firefox

edge和firefox提供了UI界面修改请求,chrome暂时没有提供该功能

Edge 和 Firefox 的 Devtools 都提供了编辑并重新发送网络请求的功能(Chrome 在最近的版本中也在尝试提供类似的能力,不过只能覆盖 Header ,体验并不是很好)

比如,在 Edge 中,我们可以选中某个请求,右键点击 “编辑并重新发送”

 2. 非法json合法化

let str = `{ "id": 111, name: 'xiaoming', 'date': '2018-08-16' }`;
//Function函数传入字符串初始化一个函数,执行后获得js对象
let obj = new Function('return ' + str)();
//再stringfiy一下就得到合法的json串了
JSON.stringify(obj)

3. 查看元素上所有绑定事件

3.1 在Element面板的Event listeners面板

可查看该元素上的所有事件,及其祖先上事件

3.2 使用 getEventListeners(node) 方法

4. 定位http请求源码位置

4.1  通过Network中请求的Initiator面板,查看调用栈

4.2  通过XHR断点(在低版本到浏览器中没有Initiator面板), 可拦截特定的URL, 然后通过调用栈定位源码

5. 调试函数

函数名 作用
debug debug(函数名) 可调试指定的函数,效果为,进入该函数后会在函数第一行停住,实际上是下了一个隐式断点,必须用undebug移除,否则一直存在
undebug 消除debug函数加的断点
copy 拷贝一个js变量到剪贴板,粘贴到文本编辑器就是json,并且带格式
console.trace  输出函数调用栈
inspect 1. 快速定位dom节点位置
函数断点时,遇到dom节点,要在Element中显示其位置,可在console中打印该元素,在元素上右键Edit HTML
也可使用 inspect(node) 可定位到元素,并且不会编辑
2. 快速定位函数源码位置
inspect(函数名) 可跳转到函数源码位置
使用断点单步调试进入也行
最次,使用全局搜索查找函数源码

6. 调试时看不到局部变量值问题

一种原因是,打包后变量名发生了改变,在源码中无法查看,只能在打包后的代码中查看,可以关闭sourcemap来查看

import {a} from './a';
import {b} from './b';
import {c} from './c';

function d() {
    a(b(c()));
}

断点在函数d中,可能看不到a,b,c的值,原因是 打包后的代码 映射到 源代码后,打包后的代码变量名可能会改变,所以看不到a,b,c的值
解决方法是,跳回到打包后的代码查看变量值
操作方法
ctrl+shift+p,输入sourcemap,先关闭sourcemap,就会在源代码停在断点时,直接跳转到打包后代码位置
同样方式,再开启sourcemap,继续回到源代码调试

7. javascript内存泄露-Detached DOM node

Detached DOM node 脱离文档的节点,就是节点被引用,如加入到数组或对象中,但是没有被加入到document中

查看Detached Dom可通过 Memory面板的内存快照

Memory面板的查找结果中,可双击改Detached Dom结果,在下方的Object面板中,查看具体对象,并能跳转到相应的源码

8. chrome打log方式-Logpoints

chrome打log,出来console.log,还有 logPoint,添加方式跟条件断点一样,在代码行号前右击,添加即可,可输入表达式计算一些值

chrome 73 中的 Logpoints 对于调试来说有两点很方便:

1. 避免修改代码添加console.log

2. 线上站点可以通过 Logpoints 直接输出信息

3. 在console.log被改写的站点调试尤其方便

9. chrome实时表达式监视

live expression就是下图中的小眼睛开启的表达式,可实时输出表达式的值,动态监视某些值有用

例如:

document.querySelector('.sel')?.offsetWidth

可实时显示元素的宽度,使用?.可保证元素查不到时不报错

10. chrome命令简便操作

ctrl+shift+p > disable/enable JavaScript      禁用开启JavaScript,无需使用插件

ctrl+shift+p > show search                         调出全局搜索,无需到处找按钮

cmd+shift+p > show changes                     调出changes, 可显示修改比对

cmd+shift+p > show animations                 调出动画调试面板

可调出的还有很多,遇到调出面板操作,可优先考虑使用命令

 

标签:请求,chrome,函数,源码,断点,调试,技巧
From: https://www.cnblogs.com/mengff/p/17557608.html

相关文章

  • goland+dlv远程调试kubelet
    Goland配置cd到main函数所在的go文件目录执行下面命令等待2分钟左右,直到出现APIserverlisteningat:[::]:8033/root/Downloads/dlvdebug--headless--listen=:8033--api-version=2----bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf--kubeconfig=/etc......
  • 电脑技巧:分享8个特别实用的工具类网站
    今天给大家分享8个特别实用的工具类网站,感兴趣的朋友可以试一试!1、iizhi:网盘资源搜索毕方铺是一个非常好用的网盘资源搜索工具,它里面收录了9000多万条网盘资源,界面简洁无广告,平时需要什么网盘资源的时候用它搜索就行,而且它还支持搜索多个网盘平台资源,用起来非常方便。官网:https://w......
  • IDEA使用小技巧
    从事开发相关工作用过不少IDE,对于优秀的IDE有一点点自己的见解。通常优秀的IDE具有这几项特点:1、能够方便用户从成千上万个文件中快速找到想要的文件或者快速定位代码位置;2、能够根据语言特性或者关联关系,将不同文件中的代码方便的串起来;3、具有良好的debugger交互操作......
  • php开发网络游戏中的一些技巧
    classMap//地图类{var$Map_ID;functionMap_bg_css($Map_ID){$this->Map_ID=$Map_ID;mysql_select_db($db_name,$link);$sql="select*frommapwhereMap_ID='".$this->Map_ID."'limit1";$result=mysql_query($sql,$link)......
  • VS(VisualStudio) 远程调试 (RemoteDebugger)
    VS远程调试方法,下面用一张图说明:参考:https://blog.csdn.net/qq_33538554/article/details/98957450,下面是详情操作:注意:另一篇博文可以参考:https://mp.weixin.qq.com/s/G4m5v7l4kCwvM9LtKu0zVQ......
  • 每日一个 ChatGPT 使用小技巧系列之4:使用 AI 工具对 SAP ABAP 代码的编写质量进行打分
    本系列之前的文章:与其整天担心AI会取代程序员,不如先让AI帮助自己变得更强大每日一个ChatGPT使用小技巧系列之1-给出提纲或者素材,让ChatGPT帮你写作每日一个ChatGPT使用小技巧系列之2-用ChatGPT研读SAPABAPBAPI的实现源代码每日一个ChatGPT使用......
  • 设置软件开机自启的小技巧
    虽然现在大部分软件都可以设置开机自启动,但是不知道有多少人知道这个小技巧,我个人觉得这个还是挺好用,分享给大家将你想要自启动的软件的快捷方式,放到以下目录中即可C:\ProgramData\Microsoft\Windows\StartMenu\Programs\StartUp该目录为公共的开始菜单,开机自动启动的软件,可以......
  • markdown使用技巧
    注意这些用的时候都要用$$标签包裹,居中单独一行显示的话用$$$$包裹1除法用这个:$\frac{分子}{分母}$\[\frac{分子}{分母}\]2上标和下标用这个:$X^2_i$\[X^2_i\]3不等号用这个:$\ne$\[\ne\]4累加用这个:$\sum_{i=1}^n{i}$\[\sum_{i=1}^n{i}\]5小于,大于用这个:$\le$......
  • 爬虫突破验证码技巧 - 2Captcha
    在互联网世界中,验证码作为一种防止机器人访问的工具,是爬虫最常遇到的阻碍。验证码的类型众多,从简单的数字、字母验证码,到复杂的图像识别验证码,再到更为高级的交互式验证码,每一种都有其独特的识别方法和应对策略。在这篇文章中,我们将一一介绍各种验证码的工作原理和使用2Captcha进......
  • Prompt Playground: 一个简易的提示词调试工具
    PromptPlayground:一个简易的提示词调试工具将LLM引入到日常的开发工作中后,会面临大量的提示词调试的工作,由于LLM不确定性,这个工作会变得非常的繁琐,需要不断的调整,甚至需要大量的重试来确保输出结果的稳定性,以确保提示词的有效性。通常情况下可能会使用OpenAI(AzureOpenAI)提供......