Article

浏览器工具 Chrome DevTools

更新于:2026-07-16

初识 DevTools:快速上手与界面概览

操作项名称语法/操作方式用途说明代码/操作示例注意事项
右键检查元素右键网页元素 → “检查”快速定位并查看指定元素的 DOM 结构和样式在页面文字上右键,选择”检查”最常用、最直观的打开方式,适合初学者
使用快捷键打开 DevToolsWindows/Linux: F12Ctrl + Shift + I
Mac: Cmd + Option + I
快捷打开 DevTools 面板按下 F12 即可打开开发者工具若浏览器设置冲突,可能需调整系统快捷键
使用菜单打开 DevTools浏览器右上角菜单 → 更多工具 → 开发者工具在无键盘设备或快捷键失效时使用通过 Chrome 菜单逐级进入”更多工具”→“开发者工具”适合不熟悉快捷键的用户
切换面板停靠位置点击 DevTools 右上角”三个点”→ “Dock side” → 选择位置调整 DevTools 显示位置(右侧、底部、独立窗口)选择 “Bottom” 使面板停靠在页面下方独立窗口模式适合双屏调试
Elements 面板点击顶部标签 “Elements”查看和编辑页面的 HTML 结构与 CSS 样式展开 DOM 树,修改某个 div 的 class 名修改仅在当前会话生效,刷新后丢失
Console 面板点击顶部标签 “Console”输出日志、执行 JavaScript 代码、查看错误信息输入 console.log('Hello') 并回车执行可与页面交互,用于快速测试脚本
Sources 面板点击顶部标签 “Sources”查看源文件、设置断点、调试 JavaScript在 JS 文件中点击行号设置断点支持本地覆盖(Local Overrides)保存修改
Network 面板点击顶部标签 “Network”监控所有网络请求(HTML、CSS、JS、图片、XHR 等)刷新页面,观察资源加载顺序与耗时勾选 “Preserve log” 可保留跨页面日志
Performance 面板点击顶部标签 “Performance”录制并分析页面性能(加载、交互、渲染等)点击 “Record” 按钮,操作页面后停止录制适合分析卡顿、加载慢等问题
Memory 面板点击顶部标签 “Memory”拍摄内存快照,检测内存泄漏点击 “Take snapshot” 生成堆快照需结合时间序列分析内存增长趋势
Application 面板点击顶部标签 “Application”查看存储(LocalStorage、Cookie)、缓存、Service Worker展开 “Local Storage” 查看键值对可手动添加、编辑或删除存储数据
设置与偏好点击右上角”三个点”→ “Settings”自定义 DevTools 外观与行为(主题、快捷键等)将主题切换为 “Dark”可启用实验性功能,但可能不稳定
隐藏/显示 DevTools点击右上角 ”×” 或快捷键 F12关闭或重新打开 DevTools关闭后按 F12 可重新打开隐藏后页面恢复完整视图,适合演示
使用设备模拟器点击左上角”设备图标”或 Ctrl + Shift + M模拟移动设备查看响应式布局选择 “iPhone 12” 预设查看移动端显示效果可配合 Network 面板模拟弱网(如 Slow 3G)

Elements 面板:DOM 与样式调试

方法/功能名称语法/操作方式用途说明代码/操作示例注意事项
查看 DOM 结构在 Elements 面板中展开 HTML 树直观浏览页面的 HTML 层级结构点击 <div class="header"> 前的箭头展开子元素支持高亮页面对应区域,悬停即可预览
编辑 DOM 元素标签双击标签名或右键 → “Edit as HTML”修改元素的标签类型或结构<span>文本</span> 改为 <p>文本</p>修改仅在当前会话生效,刷新后还原
添加/删除 DOM 元素右键元素 → “Add attribute” 或 “Delete element”动态增删元素或属性,测试布局变化为 div 添加 id="test" 属性删除元素可能影响脚本执行或样式继承
编辑文本内容双击文本节点快速修改页面显示文字将 “Welcome” 改为 “Hello World”用于测试文案或占位内容,不保存
查看应用的 CSS 样式选中元素后查看右侧 “Styles” 面板显示当前元素所有生效的 CSS 规则查看 .btn { color: red; } 是否应用样式按优先级排序,可查看被覆盖的规则(灰色划线)
启用/禁用 CSS 声明点击样式前的复选框临时关闭某条 CSS 规则,测试视觉效果禁用 margin: 10px; 查看布局变化快速排查样式问题,无需删除代码
修改 CSS 属性值直接编辑 “Styles” 面板中的属性值实时调整颜色、尺寸、字体等样式font-size: 14px 改为 16px支持单位切换(px/em/rem/%)和颜色选择器
添加新 CSS 规则在 “Styles” 面板点击 ”+” 按钮为选中元素添加新的样式声明添加 border: 1px solid #ccc;新规则默认添加到内联样式或顶层样式表
查看伪类状态点击 “:hov” 按钮 → 勾选 :hover, :active强制触发元素的伪类样式(如悬停、激活)勾选 :hover 查看按钮悬停颜色便于调试交互样式,无需鼠标操作
查看盒模型信息查看 “Styles” 面板下方的盒模型图示直观显示 content、padding、border、margin 分布观察 margin: 20px 是否导致布局溢出数值可点击编辑,实时调整盒模型尺寸
修改盒模型尺寸点击盒模型图示中的 padding/border/margin 区域数字直接修改盒模型各部分尺寸margin-top 从 10 改为 20修改同步反映在 Styles 面板和页面上
切换盒模型参考线鼠标悬停在 DOM 元素上页面上高亮显示元素的布局边界悬停 <p> 元素,页面出现蓝色高亮区域高亮色对应:content(深蓝)、padding(浅蓝)、border(绿)、margin(黄)
使用设备工具栏点击左上角设备图标或 Ctrl + Shift + M进入响应式设计模式,模拟不同屏幕尺寸拖动窗口边缘或选择预设设备(如 iPad、Pixel 5)可锁定方向(横屏/竖屏)
设置自定义设备尺寸在设备工具栏下拉菜单 → “Edit” → 添加自定义分辨率定义特定宽度和高度进行测试添加 375x667(iPhone SE 尺寸)适合测试特定断点下的布局表现
启用触摸模拟设备工具栏中勾选 “Touch”在桌面端模拟触摸事件行为在移动端视图中点击元素模拟 touchstart部分 JS 事件(如 touchend)可能需真机验证
查看 CSS 变量(Custom Properties)在 “Styles” 面板查看 --variable-name调试 CSS 自定义变量的值修改 --primary-color: #007bff;#ff6b35支持动态更新,实时反映在使用该变量的元素上
强制元素状态在 “Styles” 面板点击 “:hov” → “:active” 等强制元素处于特定状态(如 focus、visited)强制输入框进入 :focus 状态查看聚焦样式有助于调试表单交互样式

Console 面板:日志输出与交互执行

方法/功能名称语法/操作方式用途说明代码/操作示例注意事项
console.logconsole.log(value)输出普通信息,用于常规调试console.log('用户登录成功')支持输出字符串、对象、数组、变量等
console.infoconsole.info(value)输出提示性信息,通常带信息图标console.info('页面加载完成')显示为蓝色信息图标,便于分类查看
console.warnconsole.warn(value)输出警告信息,提醒潜在问题console.warn('此 API 已弃用')显示为黄色警告图标,不影响程序运行
console.errorconsole.error(value)输出错误信息,通常伴随堆栈跟踪console.error('获取数据失败:', error)显示为红色错误图标,常用于捕获异常
console.debugconsole.debug(value)输出调试信息,需在控制台设置中启用显示console.debug('函数执行参数:', args)默认可能不显示,适合开发阶段精细调试
console.tableconsole.table(data[, columns])以表格形式展示数组或对象数据console.table([{name: 'Alice', age: 25}, {name: 'Bob', age: 30}])适合查看结构化数据,提升可读性
console.groupconsole.group(label) + groupEnd()创建可折叠的日志分组console.group('用户信息'); console.log(obj); console.groupEnd()用于组织大量日志,支持嵌套
console.groupCollapsedconsole.groupCollapsed(label) + groupEnd()创建默认折叠的日志分组console.groupCollapsed('详细配置'); console.log(config); console.groupEnd()减少初始日志占用空间
console.time / timeEndconsole.time(label); console.timeEnd(label);开始和结束一个计时器,测量代码执行时间console.time('fetchData'); fetchData(); console.timeEnd('fetchData');时间单位为毫秒,最多同时运行 10000 个计时器
console.assertconsole.assert(condition, message)条件断言,若条件为 false 则输出错误信息console.assert(x > 0, 'x 必须为正数')不中断程序执行,仅在 condition 为 false 时输出
console.clearconsole.clear()清空控制台所有输出console.clear()可使用 clear() 或点击控制台清空按钮
执行 JavaScript 表达式在 Console 输入框输入 JS 代码并回车实时执行任意 JavaScript 语句3 + 5; document.title; myFunction()可访问页面全局变量和函数
$ (快捷选择器)$(selector)使用 CSS 选择器获取第一个匹配的 DOM 元素$('header')等价于 document.querySelector()
$$ (多元素选择器)$$(selector)获取所有匹配 CSS 选择器的 DOM 元素列表$$('.menu-item')返回 NodeList,可用 forEach 遍历
inspect()inspect(element)inspect('selector')在 Elements 面板中定位并高亮指定元素inspect(document.body)快速跳转到 DOM 树中的特定节点
getEventListeners()getEventListeners(element)查看元素上绑定的所有事件监听器getEventListeners($('#submit-btn'))返回对象,包含 click、change 等事件的监听函数列表
copy()copy(object)将对象内容复制到系统剪贴板copy({a: 1, b: 2})方便将数据粘贴到其他地方(如编辑器)
dir()dir(object)以属性列表形式显示对象的可枚举属性dir(document.body)类似于在控制台展开对象,但更结构化
dirxml()dirxml(element)以 XML/HTML 树形式显示元素及其子节点dirxml($('ul'))适用于查看 DOM 结构
window 对象上下文执行直接输入变量名或函数调用在全局作用域中执行代码userName; startApp()可读写全局变量,调用全局函数
查看异步错误异步代码抛出错误时自动输出捕获 Promise.reject 或 setTimeout 中的异常setTimeout(() => { throw new Error('Async error') })错误堆栈可能不完整,建议使用 catch 捕获

Sources 面板:JavaScript 调试核心

方法/功能名称语法/操作方式用途说明代码/操作示例注意事项
查看页面源码Sources 面板 → “Page” 选项卡 → 展开文件树浏览网页加载的所有 HTML、JS、CSS 文件点击 scripts/app.js 查看脚本内容支持语法高亮与行号显示
搜索文件内容Ctrl + Shift + F(或 Cmd + Option + F在所有资源中全局搜索关键词搜索 “login” 查找所有包含该词的文件支持正则表达式和区分大小写
设置普通断点在代码行号上点击当执行到该行时暂停脚本在函数 calculateTotal() 第 10 行设断点断点在刷新后仍保留(除非是动态生成代码)
删除断点再次点击已设置断点的行号取消暂停执行点击红色断点标记使其消失也可右键断点选择 “Remove breakpoint”
单步执行(Step over)调试工具栏点击 “Step over” 按钮(或 F10逐行执行代码,不进入函数内部执行到 doSomething() 时跳过函数内部逻辑适合快速跳过已知正确函数
进入函数(Step into)调试工具栏点击 “Step into” 按钮(或 F11进入当前行调用的函数内部执行到 initApp() 时进入其函数定义可深入库或模块代码进行调试
跳出函数(Step out)调试工具栏点击 “Step out” 按钮(或 Shift + F11执行完当前函数剩余部分并返回调用处validateForm() 内部调试完成后返回调用位置快速退出当前函数,查看返回结果
继续执行(Resume)调试工具栏点击 “Resume” 按钮(或 F8继续执行脚本,直到遇到下一个断点暂停后点击 “Resume” 继续运行若无后续断点,脚本将正常执行完毕
查看调用栈(Call Stack)断点暂停时查看右侧 “Call Stack” 面板显示当前函数的调用路径(从入口到当前位置)点击栈中任一帧可跳转到对应代码位置帮助理解函数是如何被逐层调用的
查看作用域变量(Scope)断点暂停时查看右侧 “Scope” 面板显示当前作用域内的变量(Local、Closure、Global)查看 let countconst config 等变量值支持展开对象和数组查看内部结构
修改变量值在 Scope 面板双击变量值进行编辑临时修改变量以测试不同逻辑分支user.role = 'admin' 改为 'guest'修改仅在当前执行上下文中有效
添加监控表达式(Watch)在 “Watch” 面板点击 ”+” 添加表达式持续观察特定变量或表达式的值变化添加 items.lengthisValid(user)表达式在每次暂停时重新计算
设置条件断点右键行号 → “Add conditional breakpoint” → 输入条件仅当条件为 true 时才触发断点条件:i === 10user.id == null避免在循环中频繁中断,提升调试效率
临时断点条件按住 Alt(Mac: Option)点击行号快速设置简单条件断点(如行号 % 次数)Alt + 点击第 20 行,输入 5(每 5 次执行中断一次)适用于循环调试
捕获异常断点Sources 面板底部 “Pause on exceptions” 按钮当抛出异常时自动暂停(可选”仅捕获”或”全部”)勾选后运行 throw new Error('Oops') 会中断在抛出位置有助于定位未捕获的错误
黑盒脚本(Blackbox Script)右键脚本文件 → “Blackbox script”忽略第三方库代码,调试时不进入其内部jquery.min.js 设为黑盒,Step into 时自动跳过避免陷入框架或库的复杂逻辑中
查看异步调用栈在 Call Stack 面板启用 “Async” 复选框显示包含 Promise、setTimeout 的异步调用链调试 fetch().then() 时查看完整异步流程对调试异步逻辑非常有帮助
本地覆盖(Local Overrides)Settings → Workspace → 启用并映射本地文件夹修改的代码可保存到本地磁盘,刷新不丢失在 Sources 中编辑 JS 后保存,刷新页面仍生效需手动启用,适合临时修改线上脚本进行测试
格式化压缩代码点击 ”{}” 按钮(Pretty Print)将 min.js 等压缩代码格式化为可读形式打开 app.min.js 后点击 ”{}” 按钮便于调试生产环境中的压缩脚本

Network 面板:网络请求监控

方法/功能名称语法/操作方式用途说明代码/操作示例注意事项
启用网络记录打开 Network 面板(自动开始记录)捕获页面加载或操作过程中的所有网络请求刷新页面后查看资源加载列表默认开启,关闭记录需点击左上角圆形按钮
查看请求列表在 Network 面板主区域查看表格展示所有请求的 URL、方法、状态、大小、耗时等查看 styles.css 的 Size 和 Time 字段点击列头可按特定字段排序
查看请求详情点击请求列表中的某一项查看选中请求的详细信息(Headers、Preview 等)点击 XHR 请求查看其响应数据支持多标签页查看不同维度信息
查看请求头(Request Headers)在 “Headers” 选项卡下查看 “Request Headers” 部分分析客户端发送给服务器的头部信息查看 User-AgentAuthorizationContent-Type可用于调试认证、跨域等问题
查看响应头(Response Headers)在 “Headers” 选项卡下查看 “Response Headers” 部分分析服务器返回的头部信息查看 Content-TypeCache-ControlSet-Cookie关注状态码(如 304 表示缓存命中)
查看请求参数(Query String)在 “Headers” 选项卡下查看 “Query Params” 部分查看 GET 请求中的查询参数查看 /api/users?page=2&limit=10 中的参数POST 请求参数通常在 Form Data 或 Request Payload 中
查看请求体(Request Payload)在 “Headers” 选项卡下查看 “Request Payload” 部分查看 POST 等请求发送的数据体查看 JSON 数据 { "name": "Alice", "age": 25 }常用于调试 API 接口提交数据
查看响应数据(Response)在 “Response” 选项卡查看服务器返回内容查看接口返回的 JSON、HTML、图片等数据查看 /api/profile 返回的用户信息 JSONJSON 自动格式化,支持展开查看
预览响应内容(Preview)在 “Preview” 选项卡查看响应预览以更友好方式预览响应内容(如 HTML 渲染片段)预览图片缩略图或 HTML 片段对调试富文本或结构化数据更直观
查看资源加载时间线(Timing)在 “Timing” 选项卡查看各阶段耗时分析 DNS、TCP、SSL、TTFB、Content Download 等耗时查看 TTFB(首字节时间)是否过长红色条表示阻塞或等待时间
过滤请求类型使用过滤器按钮(如 Doc、CSS、JS、Img、XHR、WS)快速筛选特定类型的资源点击 “XHR” 查看所有 AJAX 请求提高查找效率,避免信息过载
按关键字过滤在过滤输入框输入关键词(如 .jsapilogin模糊匹配请求 URL 或参数输入 “search” 查找包含该词的所有请求支持正则表达式(需勾选 Regex)
保留日志(Preserve log)勾选面板顶部 “Preserve log” 复选框跨页面导航或刷新时保留请求记录点击链接跳转后仍能看到前页请求适合调试重定向或多页流程
模拟弱网环境(Throttling)在 “Network” 面板右上角选择网速预设(如 Slow 3G)模拟低速网络测试页面加载与交互表现选择 “Fast 3G” 测试移动端加载性能可自定义带宽、延迟(通过 “Add” 创建自定义配置)
禁用缓存勾选 “Disable cache” 复选框强制所有请求绕过浏览器缓存开发时确保获取最新资源建议开发调试时始终启用此选项
查看资源大小与传输大小观察 Size 列(Size / Transfer Size)区分资源实际大小与网络传输大小(压缩后)JS 文件显示 “100 KB / 30 KB” 表示压缩节省 70 KBTransfer Size 小于 Size 说明启用了压缩(如 Gzip)
水印图(Waterfall)查看每行请求末尾的时间轴图直观展示各资源加载的并行与依赖关系观察多个 JS 文件是否并行加载长条越靠右或越长,表示耗时越久
复制为 cURL右键请求 → Copy → Copy as cURL (bash)生成可在终端执行的 cURL 命令在命令行重新发送相同请求便于后端或运维人员复现问题
复制请求标头(Copy request headers)右键请求 → Copy → Copy request headers复制完整的请求头信息用于在 Postman 等工具中复现请求包含 Cookie、Authorization 等敏感信息需注意安全
查看 WebSocket 通信选择 WS 过滤器,点击连接后查看 Messages 选项卡监控 WebSocket 的发送与接收消息查看聊天应用中实时消息的收发内容支持查看帧(Frame)内容与时序

Performance 面板:性能分析与优化

方法/功能名称语法/操作方式用途说明代码/操作示例注意事项
开始性能录制点击 “Record” 按钮(红色圆点)开始记录页面的运行时性能数据点击 Record → 操作页面 → 点击 Stop 生成报告录制期间尽量只进行目标操作,避免干扰
停止性能录制点击 “Stop” 按钮(灰色方块)停止记录并生成性能分析报告完成页面滚动或按钮点击后点击 Stop报告生成需要几秒到几十秒,取决于录制时长
清除录制记录点击 “Clear” 按钮(垃圾桶图标)删除当前性能记录,释放内存在开始新录制前清除旧数据避免混淆不同测试结果
查看 FPS 图表观察上方 “FPS” 图表(绿色柱状图)监控页面帧率变化,判断流畅度FPS 持续低于 30 表示卡顿严重理想状态为稳定在 60 FPS(与屏幕刷新率匹配)
查看 CPU 使用率观察 “CPU” 图表(不同颜色区块)分析主线程 CPU 占用情况多个红色区块表示 JavaScript 执行密集长时间高 CPU 可能导致页面无响应
查看内存使用趋势勾选 “Memory” 复选框并观察图表监控 JS 堆内存、DOM 节点、事件监听器等变化内存持续上升可能暗示内存泄漏需结合 Memory 面板进一步分析
定位关键时间点(Timing Marks)在代码中使用 performance.mark()在性能报告中标记重要事件时间点performance.mark('start-render'); render(); performance.mark('end-render');便于在报告中快速定位特定操作区间
缩放时间轴鼠标拖拽或滚轮缩放下方时间轴放大查看特定时间段的详细事件放大 100ms 区间查看函数调用细节支持拖动顶部滑块或双击区域缩放
查看主线程活动(Main Thread)展开 “Main” 下的调用栈与任务条分析主线程执行的任务(脚本、渲染、合成等)查看长任务(>50ms)是否阻塞用户交互长任务是导致卡顿的常见原因
识别长任务(Long Tasks)查找时间轴上红色或黄色的长条任务发现执行时间过长、影响响应的 JavaScript 任务一个 200ms 的脚本任务可能导致页面冻结建议拆分为多个小任务或使用 Web Worker
查看函数调用栈点击时间轴上的任务条 → 查看底部 “Call Tree” 或 “Bottom-Up”分析耗时函数的调用路径与执行时间占比发现 processData() 占用 80% 的脚本时间可定位性能瓶颈函数,进行优化
查看事件处理耗时在时间轴查找 Event 事件(如 click、scroll)分析事件回调函数的执行效率scroll 事件中频繁触发重排(Layout)会导致卡顿建议使用节流(throttle)优化
识别强制重排/重绘(Forced Reflow)查看是否有 “Layout” 或 “Recalculate Style” 高频出现检测因频繁读取布局属性导致的性能问题在循环中读取 offsetHeight 可能触发强制重排避免在循环中读写 DOM 布局信息
查看资源加载与执行观察 “Network” 轨道与脚本执行条的对应关系分析资源加载是否阻塞脚本执行发现关键 JS 文件加载过慢导致页面白屏建议异步加载非关键资源
页面加载性能分析(Page Load)录制页面从空白到完全加载的过程评估首屏时间、可交互时间等关键指标关注 “First Paint”、“First Contentful Paint”、“DOMContentLoaded”结合 Lighthouse 报告综合评估
用户交互性能分析(User Interaction)录制用户点击、滚动、输入等操作评估交互响应延迟与流畅度点击按钮后 200ms 才有响应,需优化事件处理逻辑目标:输入延迟 < 100ms
启用高级设置(Advanced Settings)点击右上角齿轮图标设置采样选项自定义录制行为(如是否记录内存、屏幕截图)启用 “Memory” 以包含堆内存变化开启过多选项可能影响录制性能
导出性能记录点击 “Save profile…” 导出为 JSON 文件保存性能数据供后续分析或分享.json 文件发送给团队成员协作分析可使用 performance.import() 导入查看

Memory 与 Application 面板:存储与资源管理

方法/功能名称语法/操作方式用途说明代码/操作示例注意事项
拍摄内存快照(Heap Snapshot)Memory 面板 → 选择 “Heap snapshot” → 点击 “Take snapshot”捕获当前 JavaScript 对象的内存分配情况操作页面后拍摄快照,对比前后对象数量适合检测对象未释放导致的内存泄漏
记录内存分配时间线Memory 面板 → 选择 “Allocation instrumentation on timeline” → 开始录制实时跟踪内存分配与释放过程录制用户操作,观察内存增长与 GC 回收行为可识别短期暴涨或持续增长的内存使用
记录内存分配采样Memory 面板 → 选择 “Allocation sampling” → 开始录制以采样方式记录内存分配,开销较小长时间运行应用,定位高频分配对象适合生产环境或长时间运行的性能分析
查看对象保留树(Retaining Tree)在快照中选中对象 → 查看右侧 “Retainers” 面板显示阻止该对象被垃圾回收的引用链发现某组件被事件监听器或闭包意外引用是定位内存泄漏根源的关键工具
查看对象分配栈(Allocation Stack)在 “Allocation instrumentation” 录制中右键对象 → “Reveal in Summary”查看对象是在哪段代码中被创建的定位频繁创建临时对象的函数有助于优化对象复用或缓存
查看 Cookie 存储Application 面板 → Storage → Cookies → 选择域名查看当前站点所有 Cookie 的键值对与属性查看 session_id 的值、过期时间与 Secure 标志可用于调试登录状态、跨域共享等问题
查看 LocalStorageApplication 面板 → Storage → Local Storage → 选择域名查看持久化存储数据(页面关闭后仍保留)查看用户配置 theme: 'dark' 是否正确保存数据以字符串形式存储,JSON 需手动解析
查看 SessionStorageApplication 面板 → Storage → Session Storage → 选择域名查看会话级存储数据(关闭标签页后清除)查看表单临时数据是否在刷新后保留作用域为单个标签页
编辑存储项双击 Key 或 Value 字段进行修改手动修改 Cookie、LocalStorage 等值userRole'user' 改为 'admin' 进行测试修改立即生效,无需刷新
删除单个存储项右键条目 → “Delete” 或选中后按 Delete 键移除特定的存储键值对删除过期的 tempToken可用于清理测试数据
清除所有存储Application 面板 → Storage → 勾选所有类型 → 点击 “Clear site data”一键清除当前站点所有存储数据进行回归测试前重置用户状态操作不可逆,请谨慎使用
查看 IndexedDB 数据库Application 面板 → Storage → IndexedDB → 展开数据库查看结构化客户端数据库内容浏览离线应用的缓存数据表支持查看对象存储(Object Store)与索引
查看 Cache StorageApplication 面板 → Cache Storage → 选择缓存名称查看 Service Worker 缓存的资源(如 JS、CSS、图片)检查 PWA 应用的离线资源是否正确缓存可验证缓存策略是否生效
删除缓存选中缓存 → 点击 “Delete” 按钮清除指定的 Cache Storage 缓存删除旧版本 app-v1 缓存以强制更新常用于调试缓存更新逻辑
查看 Service Worker 状态Application 面板 → Service Workers → 查看注册信息监控 SW 的运行状态(Running、Waiting、Active)查看 SW 是否成功激活,或存在更新待激活红色图标表示错误,黄色表示待激活
手动注册/更新 Service Worker点击 “Update” 按钮强制检查并更新 Service Worker 脚本部署新版本后手动触发更新触发 navigator.serviceWorker.register()
禁用 Service Worker勾选 “Bypass for network” 复选框绕过 Service Worker,所有请求直连网络调试时避免缓存干扰,确保获取最新资源适合开发阶段,避免缓存导致的”旧代码”问题
模拟离线环境勾选 “Offline” 复选框断开网络连接,测试离线功能验证 PWA 应用在无网络时是否能正常加载缓存内容需确保关键资源已正确缓存
清除所有应用数据Application 面板 → Clear storage → 选择所有项目 → Clear site data彻底重置当前站点的所有本地数据进行端到端测试前恢复初始状态相当于”清除浏览数据”中的”Cookie 及其他网站数据”

高级技巧与实用功能

方法/功能名称语法/操作方式用途说明代码/操作示例注意事项
设备模拟工具栏点击 DevTools 左上角手机图标或按 Ctrl+Shift+M(Mac: Cmd+Shift+M模拟移动设备视口进行响应式测试选择 “iPhone 12” 预设尺寸并测试页面布局支持旋转、触摸模拟和设备像素比(DPR)调整
自定义设备分辨率设备工具栏 → “Edit” → 添加自定义设备(宽度×高度)定义特定屏幕尺寸进行断点测试添加 375x812(iPhone X)、768x1024(iPad)可保存常用设备配置供后续使用
强制 CSS 媒体查询设备工具栏 → “Media queries” 下拉菜单强制启用特定媒体特性(如 prefers-color-scheme)选择 prefers-color-scheme: dark 测试暗黑模式无需系统级切换,快速验证响应式设计
截取完整页面截图Ctrl+Shift+PCmd+Shift+P)→ 输入 “full size screenshot”导出整个网页(包括不可见区域)为 PNG 图像生成 2025-09-18-full-page.png适合生成文档、报告或设计评审
截取当前视口截图Ctrl+Shift+P → 输入 “screenshot” → “Capture screenshot”仅截取当前可见区域生成 2025-09-18-viewport.png快速分享当前界面状态
录制页面交互视频Performance 面板 → 启用 “Screenshots” → 开始录制记录用户操作过程并生成可视时间轴视频录制滚动、点击动画效果,导出为性能报告的一部分视频嵌入在 Performance 报告中,便于回放分析
查看元素变化历史右键 DOM 元素 → “Break on” → “Subtree modifications”当元素结构发生变化时暂停脚本执行调试动态插入或删除节点的逻辑结合 Sources 面板定位修改源代码
监听事件断点Sources 面板 → Event Listener Breakpoints在特定事件(click、keydown、load)触发时中断勾选 “Mouse” → “click” 调试按钮点击行为避免手动在代码中添加 debugger
使用命令菜单(Command Menu)Ctrl+Shift+PCmd+Shift+P快速执行 DevTools 内置命令输入 “Clear cache”、“Show audits”、“Enable device mode”替代鼠标操作,大幅提升操作速度
常用快捷键 - 打开控制台Ctrl+\`` 或 Esc`显示/隐藏底部 Console 面板快速查看日志输出在任意面板均可使用
常用快捷键 - 切换面板Ctrl+[1-9]Cmd+[1-9]快速切换到第 N 个 DevTools 面板Ctrl+2 切换到 Console,Ctrl+3 切换到 Sources面板顺序依开启顺序而定
常用快捷键 - 查找元素Ctrl+F(Mac: Cmd+F在 Elements 面板中搜索 DOM 节点搜索 <button class="submit">支持 CSS 选择器和文本匹配
常用快捷键 - 全局搜索Ctrl+Shift+F(Mac: Cmd+Option+F在所有资源中搜索文本搜索变量名、类名或字符串适用于大型项目查找代码片段
常用快捷键 - 单步调试F8(继续)、F10(Step over)、F11(Step in)JavaScript 调试常用控制断点暂停后使用 F10/F11 逐行执行提升调试效率
启用本地工作区(Local Overrides)Settings → Workspace → 添加本地文件夹映射将网页资源映射到本地磁盘,实现”实时编辑保存”编辑线上 JS/CSS 后直接保存,刷新仍生效需允许文件系统权限,适合临时修改测试
自动补全与代码高亮在 Sources 或 Console 中输入代码提供语法提示、括号匹配与错误标记编写函数时自动提示参数类似轻量级 IDE 体验
同步 DevTools 设置登录 Google 账户(Chrome 设置 → Sync)在不同设备间同步 DevTools 偏好设置保持快捷键、主题、首选项一致包括面板布局、颜色主题、默认启用功能等
自定义样式规则(Overrides)Settings → Experiments 或通过扩展注入 CSS修改 DevTools UI 外观(实验性)使用第三方主题插件美化界面需启用实验功能,可能不稳定
模拟地理位置Sensors 面板(More Tools → Sensors)→ 设置位置模拟 GPS 坐标用于调试定位功能设置为 “Custom location (40.7128, -74.0060)“(纽约)需网站请求地理位置权限
模拟传感器(陀螺仪、加速度计)Sensors 面板 → 设置设备方向测试依赖设备朝向的功能(如 AR、游戏)设置为 “Landscape” 或自定义旋转角度仅影响 DeviceOrientationEvent API