前端调试技术|青训营笔记

87 阅读3分钟

这是我参加[第五届青训营]伴学笔记创作活动的第9天

本堂课程重要知识

  • 了解PC端前端调试
  • 了解移动端前端调试

PC端调试

debug的特点

image.png

Chrome DevTools

在页面上右键 ---> 检查工具打开DevTool,或者直接F12键打开。

Elements(元素)

  • 点击.cls开启动态修改元素的class
  • 输入字符串可以动态的给元素添加类名
  • 勾选/取消类名可以动态的查看类名生效效果
  • 点击具体的样式值(字号、颜色、宽度高度等)可以进行编辑,浏览器内容区域实时预览
  • Computed(计算样式)下点击样式里的箭头可以跳转到styles面板中的CSS规则 image.png

强制激活伪类 (用于观察DOM悬浮等效果)

  • 选中具有伪类的元素, 点击右侧:hov;
  • DOM树右键菜单,选择Force State(强行执行状态).

其他功能:截取节点屏幕截图、滚动到视野范围等其他有趣功能

Console(控制台)

image.png 结果如下:

image.png console.time() 字符串是灰色,整数是蓝色

Source(源代码)

image.png 此处如何调试代码:

  • 在2区域需要调试或暂停的代码前输入debugger;
  • 点击需要调试代码的行号或右侧区域4的breakpoints界面,出现圆点即可
  • 将鼠标移到关联最终结果的变量上
  • 在右侧区域4的watch界面中搜索需要查看的变量值

其他可能会用到的界面

image.png image.png

如何调试压缩后的代码

压缩和混淆代码的原因:安全性与代码质量(过于简陋) 通过webpack、uglifyJS、terser等工具使用sorceMap
开启/关闭方式:比如在webpack配置文件中module添加devtool:'source-map',然后在npm run build时

image.png image.png

Performance(性能)

image.png

当我们对网站性能要求比较高的时候,可以在performance面板中查看每一帧、每一毫秒中执行了什么,汇总信息查看加载某一个模块花费的时间

  • fps 每秒帧数
  • cpu 处理各个任务花费的时间
  • net 各个请求花费时间
  • frames 帧线程
  • main 主线程 负责执行JavaScript 解析HTML/CSS 完成绘制
  • Raster raster线程 负责完成某个layer或者某些块(tile)的绘制
  • 统计面板 官网提供测试网站

页面卡顿->查看FPS指标->寻找性能瓶颈->优化代码

查看FPS指标:

  • 查看Frame的情况
  • 设置面板中找到rendering,然后勾选Frame rendering states,低于60容易丢帧

性能瓶颈:通过main界面中的红色部分查看问题,然后找到对应的代码行

Lighthouse

image.png

Network(网络)

与网络请求相关的都在这块,包括模拟网速,查看请求的各种资源,接口运行时间(串行和并行) 最底部是总加载资源数和各种节点加载速度

Application(应用)

Application面板展示与本地存储相关的信息:

  • Local Storage
  • Session Storage
  • IndexedDB
  • Web SQL
  • Cookie

application面板中点击Stroage面板中下拉可见clear site data 可以清除网页的本地存储数据

移动端

真机调试

iOS和Android

image.png

VConsole

需要下载组件

image.png

使用代理工具调试

常用代理工具:

  • Charle(别名小花瓶,适合查看、控制网络请求、分析数据)
  • Fiddler(与Charles类似,适合windows平台)
  • spy-debugger(远程调试手机页面,抓包)
  • whistle(基于node实现的跨平台web调试代理工具) image.png