Google 用户调研。
欢迎回来!自上次更新(针对 Chrome 68)以来,已经过去了大约 12 周。我们跳过了 Chrome 69,因为我们没有足够的新功能或界面变更来撰写博文。
Chrome 70 中即将推出的开发者工具新功能和重大变更包括:
- 控制台中的实时表达式。
- 在及早评估期间突出显示 DOM 节点。
- 优化了性能面板。
- 更可靠的调试功能。
- 从命令菜单启用网络节流功能。
- 自动补全条件断点。
- 在
AudioContext事件上中断。 - 使用 ndb 调试 Node.js 应用。
- 奖励提示:使用 User Timing API 衡量真实世界中的用户互动。
请继续阅读,或观看此文档的视频版本:
控制台中的实时表达式
如果您想实时监控某个实时表达式的值,请将其固定到控制台顶部。
点击创建实时表达式图标
。系统会打开实时表情界面。
图 1. 实时表达式界面
输入要监控的表达式。
图 2. 在实时表达式界面中输入
Date.now()点击“实时表情”界面之外的区域,以保存您的表情。
图 3. 已保存的实时表达式
实时表达式值每 250 毫秒更新一次。
在及早评估期间突出显示 DOM 节点
在控制台中输入可评估为 DOM 节点的表达式,主动评估功能现在会在视口中突出显示该节点。
图 4. 由于当前表达式的求值结果为节点,因此该节点会在视口中突出显示
以下是一些可能对您有用的表达方式:
document.activeElement用于突出显示当前获得焦点的节点。document.querySelector(s)用于突出显示任意节点,其中s是 CSS 选择器。这相当于将鼠标悬停在 DOM 树中的节点上。$0用于突出显示 DOM 树中当前所选的任何节点。$0.parentElement突出显示当前所选节点的父节点。
“性能”面板优化
以前,在分析大型网页时,“性能”面板需要花费数十秒来处理和直观呈现数据。点击“摘要”标签页中的某个活动以详细了解该活动时,有时也需要花费数秒时间才能加载。在 Chrome 70 中,处理和可视化速度更快。
图 5. 处理和加载效果数据
更可靠的调试
Chrome 70 修复了一些导致断点消失或无法触发的 bug。
此版本还修复了与源代码映射相关的 bug。某些 TypeScript 用户会在单步调试代码时指示开发者工具忽略某个 TypeScript 文件,但开发者工具却会忽略整个捆绑的 JavaScript 文件。这些修复还解决了导致“来源”面板运行缓慢的问题。
通过命令菜单启用网络节流功能
您现在可以从命令菜单中将网络限速设置为“高速 3G”或“低速 3G”。
图 6. 命令菜单中的网络节流命令
自动补全条件断点
使用自动补全界面更快地输入条件断点表达式。
图 7. 自动补全界面
您知道吗? 自动补全界面由 CodeMirror 提供支持,后者还为控制台提供支持。
在 AudioContext 事件上中断
使用事件监听器断点窗格可在 AudioContext 生命周期事件处理脚本的第一行暂停。
AudioContext 是 Web Audio API 的一部分,您可以使用它来处理和合成音频。
图 8. “事件监听器断点”窗格中的 AudioContext 事件
使用 ndb 调试 Node.js 应用
ndb 是 Node.js 应用的新调试器。除了通过开发者工具获得的常规调试功能之外,ndb 还提供:
- 检测并附加到子进程。
- 必须在模块之前放置断点。
- 在开发者工具界面中修改文件。
- 默认情况下,忽略当前工作目录之外的所有脚本。
图 9. ndb 界面
如需了解详情,请参阅 ndb 的自述文件。
奖励提示:使用 User Timing API 衡量实际的用户互动
想衡量真实用户在您的网页上完成关键历程所需的时间吗?不妨考虑使用 User Timing API 为代码添加检测功能。
例如,假设您想衡量用户在点击号召性用语 (CTA) 按钮之前在首页上停留的时间。首先,您需要在与网页加载事件(例如 DOMContentLoaded)相关联的事件处理程序中标记用户旅程的开始:
document.addEventListener('DOMContentLoaded', () => {
window.performance.mark('start');
});
然后,您可以在点击按钮时标记旅程的结束并计算其时长:
document.querySelector('#CTA').addEventListener('click', () => {
window.performance.mark('end');
window.performance.measure('CTA', 'start', 'end');
});
您还可以提取衡量数据,以便轻松将其发送到分析服务,从而收集匿名汇总数据:
const CTA = window.performance.getEntriesByName('CTA')[0].duration;
开发者工具会自动在性能记录的用户计时部分中标记用户计时测量结果。
图 10. “用户计时”部分
在调试或优化代码时,这也会非常有用。例如,如果您想优化生命周期的某个阶段,请在生命周期函数的开头和结尾调用 window.performance.mark()。React 在开发模式下会执行此操作。
下载预览渠道
不妨考虑使用 Chrome Canary 版、开发者版或 Beta 版作为默认开发浏览器。通过这些预览渠道,您可以访问最新的 DevTools 功能,测试最前沿的 Web 平台 API,并在用户发现问题之前帮助您找到网站上的问题!
与 Chrome 开发者工具团队联系
您可以使用以下选项讨论新功能、更新或与开发者工具相关的任何其他内容。
- 请前往 crbug.com 向我们提交反馈和功能请求。
- 在开发者工具中,依次选择 更多选项 > 帮助 > 报告 DevTools 问题,以报告 DevTools 问题。
- 在 Twitter 上向 @ChromeDevTools 发送推文。
- 在 DevTools 新变化 YouTube 视频或 DevTools 提示 YouTube 视频中发表评论。
开发者工具的新变化
开发者工具的新变化系列中涵盖的所有内容。
- 开发者工具 MCP 服务器更新
- 改进了轨迹分享功能
- 对 @starting-style 的支持
- 用于显示的编辑器 widget:masonry
- Lighthouse 13
- Gemini 提供的代码建议
- 开发者工具 MCP 服务器的增强功能
- 更快地获取 AI 助理的帮助
- 使用 Gemini 调试完整性能轨迹
- 切换抽屉式导航栏方向
- Google 开发者计划
- 其他亮点
- 适用于 AI 代理的 Chrome 开发者工具 (MCP)
- 使用 Gemini 调试网络依赖树
- 导出与 Gemini 的对话
- “效果”面板中的持久轨道配置
- 过滤 IP 地址保护网络请求
- 元素 > 布局标签页添加了瀑布流布局支持
- Lighthouse 12.8.2
- 其他亮点
- 使用 Gemini 调试更多分析洞见
- 在“网络状况”中模拟“Save-Data”标头
- 在 CSS 属性提示中查看基准状态
- 替换用户代理客户端提示中的设备规格
- Lighthouse 12.8.0
- 其他亮点
- 更可靠、更高效的 Chrome 开发者工具
- 在 AI 辅助功能中上传图片以进行样式设置
- 向“网络”中的表格添加请求标头
- 查看 2025 年 Google I/O 大会的亮点
- 其他亮点
- 改进了“效果”面板
- “网络依赖关系树”数据洞见中的预连接源
- “文档请求延迟时间”数据洞见中的服务器响应和重定向时间
- “网络请求摘要”中的重定向
- 减少了性能轨迹中的噪声
- 已弃用“停用 JavaScript 示例”
- 传感器中的地理定位精确度形参
- “元素”面板改进
- 更轻松地调试复杂的 CSS 值
- Elements 中的@function 支持 > 样式
- 网络面板改进
- has-request-header 过滤条件
- 独立式 Web 应用中的直接套接字
- 其他亮点
- 无障碍功能
- 2025 年 Google I/O 大会版
- 使用 Gemini 修改 CSS 并将更改保存到工作区
- 连接工作区文件夹并将更改保存回源文件
- 向 Gemini 询问有关效果分析的问题
- 使用 Gemini 为效果分析结果添加注释
- 在与 Gemini 的对话中添加屏幕截图
- “效果”面板中的新数据洞见
- 重复的 JavaScript
- 旧版 JavaScript
- 推测现在支持规则标记
- Lighthouse 12.6.0
- 其他亮点
- 无障碍功能
- 改进了“效果”面板
- 新的效果分析
- 点击即可突出显示
- “网络请求摘要”中的服务器计时
- 在“隐私和安全”中过滤 Cookie
- 各个面板中表格的大小(以 kB 为单位)
- 自动补全功能支持“元素”>“样式”中的边角形状和边角*-形状
- 实验性功能:突出显示 DOM 中元素和属性存在的问题
- Lighthouse 12.5.0
- 其他亮点
- 改进了“效果”面板
- 性能中的个人资料和函数调用的来源和脚本链接
- 按阶段划分的 LCP 实地数据支持
- 网络依赖关系树数据分析
- “摘要”中显示时长,而不是总时间和自身时间
- “执行用时最长的堆栈”突出显示功能
- 改进了各种面板的空状态
- “元素”中的无障碍功能树状视图
- Lighthouse 12.4.0
- 其他亮点
- “隐私和安全”面板
- 改进了“效果”面板
- 校准后的 CPU 节流预设
- 在同一 AI 对话中选择不同的效果活动
- “效果”中的第一方和第三方突出显示
- 标记工具提示和分析洞见中的实测数据
- 强制自动重排数据分析
- “优化 DOM 大小”数据洞见
- 使用 console.timeStamp 扩展性能轨迹
- “元素”面板改进
- 动画样式的实时值
- 支持 :open 伪类和各种伪元素
- 复制所有控制台消息
- “内存”面板中的字节单位
- 其他亮点
- 持久的 AI 聊天记录
- 改进了“效果”面板
- 图片投放分析数据
- 传统键盘导航和现代键盘导航
- 忽略火焰图中的无关脚本
- 悬停时显示时间轴标记和范围突出显示效果
- 建议的限制设置
- 叠加层中的时间标记
- “摘要”中的 JS 调用堆栈轨迹
- 徽章设置已移至 Elements 中的菜单
- 新增“新变化”面板
- Lighthouse 12.3.0
- 其他亮点
- 使用 Gemini 调试网络请求、源文件和性能轨迹
- 查看 AI 聊天记录
- 在“应用”>“存储空间”中管理扩展程序存储空间
- 性能改进
- 实时指标中的互动阶段
- “摘要”标签页中的渲染阻塞信息
- 支持 scheduler.postTask 事件及其发起者箭头
- “动画”面板和“元素”>“样式”标签页改进
- 从“元素”>“样式”跳转到“动画”
- “计算”标签页中的实时更新
- 传感器中的计算压力模拟
- “内存”面板中按来源分组的同名 JS 对象
- 设置页面焕然一新
- “性能数据分析”面板已弃用,并已从开发者工具中移除
- 其他亮点
- 使用 Gemini 调试 CSS
- 在专用设置标签页中控制 AI 功能
- 改进了“效果”面板
- 添加注释并分享效果发现
- 直接在“效果”面板中获取效果分析
- 更轻松地发现过度的布局偏移
- 找出未合成的动画
- 硬件并发移至传感器
- 忽略匿名脚本,专注于堆栈轨迹中的代码
- 元素 > 样式:支持网格叠加层和 CSS 范围关键字的 sideways-* 书写模式
- 在时间跨度和快照模式下针对非 HTTP 网页运行 Lighthouse 审核
- 无障碍功能改进
- 其他亮点
- 网络面板改进
- 重新构想的网络过滤器
- HAR 导出功能现在默认排除敏感数据
- “元素”面板改进
- text-emphasis-* 属性的自动补全值
- 使用徽章标记滚动溢出
- 改进了“效果”面板
- 实时指标中的建议
- 浏览面包屑导航
- “内存”面板改进
- 新的“已分离的元素”配置文件
- 改进了纯 JS 对象的命名
- 关闭动态主题
- Chrome 实验:进程共享
- Lighthouse 12.2.1
- 其他亮点
- 记录器支持导出到 Puppeteer(适用于 Firefox)
- 改进了“效果”面板
- 实时指标观测
- 网络轨道中的搜索请求
- 查看 performance.mark 和 performance.measure 调用的堆栈轨迹
- 在“自动填充”面板中使用测试地址数据
- “元素”面板改进
- 强制设置特定元素的更多状态
- “元素”>“样式”现在可自动补全更多网格属性
- Lighthouse 12.2.0
- 其他亮点
- Gemini 控制台数据分析功能即将在大多数欧洲国家/地区推出
- “效果”面板更新
- 增强型网络轨道
- 使用可扩展性 API 自定义效果数据
- “时间安排”轨道中的详细信息
- 复制“网络”面板中列出的所有请求
- 使用命名 HTML 标记,减少杂乱,更快地获取堆快照
- 打开“动画”面板以捕获动画并实时修改 @keyframes
- Lighthouse 12.1.0
- 无障碍功能改进
- 其他亮点
- 在“元素”面板中检查 CSS 锚点定位
- “来源”面板改进
- 增强了“一律不在此处暂停”功能
- 新的滚动贴靠事件监听器
- 网络面板改进
- 更新了网络节流预设
- HAR 格式的自定义字段中的 service worker 信息
- 在“性能”面板中发送和接收 WebSocket 事件
- 其他亮点
- 改进了“效果”面板
- 使用更新后的轨道配置模式移动和隐藏轨道
- 忽略火焰图中的脚本
- 将 CPU 降频 20 倍
- “效果数据分析”面板将被弃用
- 使用堆快照中的新过滤条件查找过多的内存用量
- 在“应用”>“存储”中检查存储分区
- 使用命令行标志停用自 XSS 警告
- Lighthouse 12.0.0
- 其他亮点
- 借助 Gemini 更好地了解控制台中的错误和警告
- 在“元素”>“样式”中支持@position-try 规则
- “来源”面板改进
- 配置自动美化打印和括号闭合
- 已处理的被拒绝的 Promise 会被识别为已捕获
- 控制台中的错误原因
- 网络面板改进
- 检查早期提示标头









