前端开发浏览器调试方法

一、背景

作为前端工程师,无论是开发还是线上环境。移动端或者 PC 端,经常会遇到一些 bug,那么如何在浏览器快速定位和解决问题呢。

调试本身可以分为两个过程,定位问题 和 解决问题 。而更重要的显然是如何快速的定位问题。本文将集中讨论如何 快速发现 并 调试问题方面。

二、调试工具

现代浏览器(如 Chrome、Firefox、Edge 等)都内置了强大的开发者工具(DevTools),这是前端调试的核心工具。

1. 主要功能面板

  • Elements:查看和编辑 HTML 和 CSS,实时调试样式。
  • Console:查看 JavaScript 错误、输出调试信息、执行 JavaScript 代码。
  • Sources:调试 JavaScript 代码,设置断点、单步执行、查看调用栈等。
  • Network:查看网络请求,分析请求头、响应头、响应内容等。
  • Performance:分析页面性能,查找性能瓶颈。
  • Application:查看和操作本地存储、Cookie、缓存等。

2. Elements

Elements 面板会显示目前网页中的 DOM、CSS 状态,且可以修改页面上的 DOM 和 CSS,即时看到结果,省去了在编辑器修改、储存、浏览器查看结果的流程。

$n

开启 Elements 面板时,标记的元素后方总会有个 == $0

选中一个元素后再到 Console 面板输入$0,会发现刚刚选中的元素出现在 Console 中,如果再多点几个元素,还可以用$1、$2、$3、$4(到此为止)来拿到前几次选到的元素。

另外在 Console 中对元素按下右键,选择 Reveal in Elements Panel 可以跳到该元素在 Elements 面板中的位置,对 Elements 面板的元素按下右键则有 Scroll to view 可以把视野滚到能看见元素的地方。

想要在 Console 面板中用 JavaScript 操作元素时,$0就非常方便,另外也可以搭配 console.dir($0) 来观察元素的各个属性,如果在 Console 直接输入 $0 或是 console.log($0) 只会显示元素自身。

3. Console

console 是 JavaScript 中最常用的调试工具之一。除了 console.log(),还有其他有用的方法:

console.table() 可用于打印 obj/arr 成表格

console.trace() 可用于 debugger 堆栈调试,方便查看代码的执行逻辑,也可以帮助我们看一些库的源码

console.count会印出这个标签被执行了几次,预设值是default,可以用在快速的计数。

4. Sources

在 Sources 面板中,可以设置断点来暂停代码执行,逐步检查代码的运行状态。

  • 普通断点:在想断住的那一行左侧单击一下就可以添加一个断点,运行到该处就会断住。

  • 条件断点:右键单击代码所在的行左侧,会出现一个下拉框,可以添加一个条件断点。输入条件表达式,当运行到这一行代码并且表达式的值为真时就会断住。

  • DOM 断点:在 Chrome Devtools 的 Elements 面板的对应元素上右键,选择 break on,可以添加一个 dom 断点,也就是当子树有变动、属性有变动、节点移除这三种情况的时候会断住。可以用来调试导致 dom 变化的代码。
  • Event Listeners 打断点:在 Chrome Devtools 的 Elements 面板上找到你想排查的 dom 节点,右侧面板 Event Listeners 中会有当前阶节点,可以当前节点打断点调试。

  • 异常断点:在 Debugger 面板勾选 Uncaught Exceptions 和 Caught Exceptions 可以添加异常断点,在抛出异常未被捕获或者被捕获时断柱。用来调试一些发生异常的代码时很有用。

5. Network

在 Network 面板中,可以查看所有网络请求的详细信息,包括请求头、响应头、状态码、响应时间等。

  • 过滤请求

    • 使用过滤器快速找到特定的请求类型(如 XHR、JS、CSS 等)。
    • 使用搜索框查找特定的请求 URL 或响应内容。
  • 分析请求问题

    • 检查请求状态码(如 404、500 等)以确定问题。
    • 查看请求参数和响应内容,确保数据正确。

6. Application

Application 面板可以查看和操作本地存储、Cookie、缓存等。

  • 检查 LocalStorage 和 SessionStorage

    • 查看存储的键值对,确保数据正确。
    • 手动添加、编辑或删除存储项。
  • 检查 Cookies

    • 查看 Cookie 的详细信息,包括名称、值、过期时间等。
    • 手动编辑或删除 Cookie。

本文参考文章地址:juejin.cn/post/705549...

相关推荐
echome8886 分钟前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
时间的情敌11 分钟前
OpenLayers 实战|Vue3 + OpenLayers 完整工程案例(加载天地图、要素、弹窗、绘制、WFS)
前端·openlayers
陈随易11 分钟前
下载神器!Motrix 停更三年后重写回归
前端·后端·程序员
前端的日常42 分钟前
一个人+AI做情侣食谱小程序,0 费用的服务器
前端·后端
计算机魔术师1 小时前
谷歌搜索广告踩刹车,AI广告成为救命稻草
前端
总要学点什么1 小时前
第81篇:数据可视化-PM2.5分布——让圆点的胖瘦替每座城市报出浓度
前端·信息可视化·echarts·cesium·空间分析
IT_陈寒1 小时前
Vue的v-for里用了个临时变量,页面直接挂了
前端·人工智能·后端
hunter_0761 小时前
一次 iOS 真机签名 409 的完整排查:证书、设备、描述文件为什么总是"对不上"
前端
枣把儿2 小时前
开源!公众号排版+一键发布工具懒人版
前端
2501_916007472 小时前
抓包工具功能对比,TraceEagle、Charles、Fiddler、Wireshark、mitmproxy 差别
前端·网络协议·ios·adb·https·fiddler·wireshark