Web 调试技术 | 青训营笔记

96 阅读3分钟

这是我参与【第五届青训营】笔记创作的第 9 天。

前端 DeBug 的特点

  • 多平台:浏览器、Hybrid、Node.js、小程序、桌面应用等
  • 多环境:本地开发环境、线上环境
  • 多工具:Chrome devTools、Charles、Spy-Debugger、Whistle、vConsole
  • 多技巧:Console、BreakPoint、sourceMap、代理等

Chrome DevTools

动态修改元素和样式

  • 打开控制台,可以在 elements tab 下动态修改元素的 class,点击 .cls 输入样式名可以添加样式
  • 输入字符串可以动态地给元素添加类名
  • 勾选/取消类名可以动态地查看类名生效效果
  • 点击具体的样式值(字号、颜色、宽度高度等)可以进行编辑,浏览器内容区域实时预览
  • Computed 下点击样式里的箭头可以跳转到 styles 面板中的 css 规则,即可查看生效的样式代码
  • 在某个 DOM 元素(例如 body)中的右键,选中 Capture node screenshot 即可对该节点内容进行截屏

Console

  • console.log

  • console.warn

  • console.error

  • console.debug

  • console.info

  • console.table

    • 具像化的展示JSON和数组数据
  • console.dir

    • 通过类似文件树的方式展示对象的属性

image.png

  • 占位符

    • 给日志添加样式,可以突出重要的信息
    • %s:字符串占位符;%o:对象占位符;%c:样式占位符;%d:数字占位符
  • console.time()和console.timeEnd(),用来显示代码的运行时间

Source Tab

展示项目源代码,还有Debug调试栏、
断点调试器:断点地方加入debugger;
压缩后的代码需要用Source Map来调试

NetWork

列表展示各种请求资源,总的请求数量还有所耗时间,串行并行,可以模拟弱网环境。可通过查看返回结果判断前端问题还是后端问题。

Application

浏览器存储相关
clear site data 清除缓存

Performance(性能)

控制面板、概览面板、线程面板、统计面板
可模拟性能较差的条件。
例:页面卡顿->查看FPS指标->寻找性能瓶颈->优化代码

Lighthouse

点击性能分析->核心Web指标。(LCP:2.5s,FID:100ms,CLS:0.1或更少)

移动端 H5 调试

真机调试

iOS

  1. 使用 Lightning 数据线将 iPhone 与 Mac 相连
  2. iPhone 开启 Web 检查器(设置 -> Safari -> 高级 -> 开启 Web 检查器)
  3. iPhone 使用 Safari 浏览器打开要调试的页面
  4. Mac 打开 Safari 浏览器调试(菜单栏 -> 开发 -> iPhone 设备名 -> 选择调试页面)
  5. 在弹出的 Safari Developer Tools 中调试

没有 iPhone 设备可以在 Mac AppStore 安装 Xcode 使用其内置的iOS 模拟器

Android

  1. 使用 USB 数据线将手机与电脑相连
  2. 手机进入开发者模式,勾选 USB 调试,并允许调试
  3. 电脑打开 Chrome 浏览器,在地址栏输入:chrome://inspect/#devices 并勾选 Discover USB devices 选项
  4. 手机允许远程调试,并访问调试页面
  5. 电脑点击 inspect 按钮
  6. 进入调试界面

使用手机扫码查看体验更佳

NodeJs 应用调试

  1. Inspector Protocol + Chrome devTools
  2. Inspector Protocol + VS code

常用开发调试技巧

  1. 线上即时修改Overrides

  2. 利用代理解决开发阶段的跨域问题

  3. 启用本地source map

  4. 使用代理工具Mock数据

  5. 小黄鸭调试大法