Front-End-Checklist 实战:基于真实浏览器执行性能审计(Lighthouse / Puppeteer / Playwright)
Front-End-Checklist 实战基于真实浏览器执行性能审计Lighthouse / Puppeteer / Playwright【免费下载链接】Front-End-Checklist The essential checklist for modern web development, for humans and AI agents项目地址: https://gitcode.com/gh_mirrors/fr/Front-End-Checklist本篇技术指南以 Front-End-Checklist 仓库中browser-requiredPerform browser-based performance audits规则为核心讲解为什么性能审计必须发生在真实浏览器环境中以及如何用 Lighthouse、Puppeteer、Playwright 落地 LCP、CLS、INP 等运行时指标的测量。读完你将掌握一套可复制到 CI/CD 流程中的浏览器级性能审计方案并了解本仓库中该规则对应的源码级验证工具链。规则定位这是 performance 类目下的 metrics 子规则在 Front-End-Checklist 的内容体系中browser-required规则位于 packages/content/rules/en/performance/browser-required.mdx归属于performance类目、metrics子类目优先级为 medium、难度为 intermediate、预计耗时 10 分钟。与其配套的 Agent 技能入口是 skills/browser-required/SKILL.md该文件以 frontmatter 形式声明了规则的触发场景Use when auditing slow page loads, heavy assets, or rendering delays related to Perform browser-based performance audits. Verify the actual bottleneck in DevTools, Lighthouse, or field data before recommending changes.换句话说这条规则的职责边界是当你在审计慢页面加载、重资源或渲染延迟时必须先判断瓶颈是否真实存在于浏览器执行阶段再用浏览器级工具去量化它。规则的 check / fix / explain 三个动作分别是确保审计发生在能执行 JavaScript 并渲染页面的环境中如 Lighthouse、Puppeteer把 Lighthouse 或 WebPageTest 这类浏览器测试工具集成进开发流程与 CI/CD 管线向团队解释静态分析对性能的局限以及完整浏览器环境的必要性。为什么静态分析测不出真正的性能问题规则文档开门见山给出结论静态分析能发现一部分性能问题但大量关键指标只有在真实浏览器中执行页面时才能测得。这一判断可以从四个层面展开指标计算依赖渲染引擎Largest Contentful PaintLCP需要真正渲染出页面内容才能确定最大内容绘制的时刻Cumulative Layout ShiftCLS必须在元素移动的真实布局流程中累计位移分数。没有渲染引擎这些值根本不存在。JavaScript 执行影响主线程脚本对主线程的阻塞时长、交互延迟如 INP、TBT只有执行过脚本才能测量静态分析无法模拟 V8 引擎的解析、编译与执行开销。真实世界模拟只有浏览器环境可以同时做 CPU 节流与网络节流还原低端手机 弱网的真实用户体验。可视化反馈浏览器工具能产出加载过程的截图和录屏帮助定位卡顿jank与布局抖动。方案一用 Lighthouse CLI 发起完整浏览器审计Lighthouse 会启动一个完整的 Chrome 实例来审计页面规则文档给出了最小可用的两条命令# 安装 Lighthouse npm install -g lighthouse # 对 URL 发起审计--view 自动打开报告--chrome-flags 传入 Chromium 启动参数 lighthouse https://example.com --view --chrome-flags--headless在此基础上可以按审计需求扩展常用参数# 输出 JSON 报告并指定设备模拟与节流配置 lighthouse https://example.com \ --outputjson --output-path./lighthouse-report.json \ --presetdesktop \ --throttling-methodsimulate \ --chrome-flags--headless --no-sandbox --disable-gpu关键参数说明参数作用--view审计完成后自动打开 HTML 报告--output/--output-path导出 json / html / csv 格式报告到指定文件--presetdesktop以桌面配置运行默认移动端模拟--throttling-methodsimulate用模拟方式施加网络/CPU 节流比真实节流快得多--chrome-flags透传 Chromium 命令行参数CI 中常用--headless --no-sandbox方案二用 Puppeteer 脚本化浏览器审计并施加节流规则文档提供了基于 Puppeteer 的自动化方案通过 CDPChrome DevTools Protocol会话下发Network.emulateNetworkConditions来模拟 Fast 3G 网络然后读取页面运行时指标const puppeteer require(puppeteer); (async () { const browser await puppeteer.launch(); const page await browser.newPage(); // Throttling network and CPU const client await page.target().createCDPSession(); await client.send(Network.emulateNetworkConditions, { offline: false, latency: 100, downloadThroughput: 750 * 1024 / 8, // Fast 3G uploadThroughput: 250 * 1024 / 8, }); await page.goto(https://example.com); const metrics await page.metrics(); console.log(Browser Metrics:, metrics); await browser.close(); })();需要注意Network.emulateNetworkConditions的吞吐量单位是字节/秒所以代码里用750 * 1024 / 8把 750 kbps 的 Fast 3G 带宽换算成字节。同理CPU 节流也可以通过 CDP 会话下发Emulation.setCPUThrottlingRate如rate: 4模拟 4 倍慢的 CPU二者叠加才能同时还原弱网 低端设备的真实场景。除了网络节流脚本里还可以读取 Navigation Timing 与 Performance Resource Timing 数据。这一点在本仓库的 E2E 工具链中有直接对应实现apps/e2e/utils/performance.utils.ts 里的PerformanceUtils类封装了measurePageLoad()通过performance.getEntriesByType(navigation)计算 domContentLoaded、loadComplete、domInteractive 等阶段耗时、getResourceMetrics()遍历PerformanceResourceTiming统计资源数量、传输大小与耗时和measureMemoryUsage()读取 Chrome 的usedJSHeapSize等内存指标——这就是在浏览器执行环境中取运行时数据这一思路在工程代码中的落地形态。方案三用 Playwright 构建多浏览器性能回归防线规则文档在工具清单中列出了 Playwright现代浏览器自动化适合编写自定义性能脚本。本仓库正是用 Playwright 搭建了真实浏览器测试基础apps/web/playwright.config.ts 定义了三个浏览器项目chromium、firefox、webkit对应桌面 Chrome / Firefox / Safari并通过webServer配置在测试前自动启动pnpm exec next start --port 3080用真实运行的 Next.js 服务作为被测对象apps/web/e2e/smoke.spec.ts 提供了冒烟测试范例真实打开首页、断言 H1 标题可见、验证/rules与/mcp路由正常渲染——这类真实浏览器里跑页面的用例正是性能审计的前置条件apps/e2e/playwright.config.ts 为跨应用 E2E 提供配置PerformanceUtils的交互耗时判定measureInteraction与TEST_CONFIG.performance.maxInteractionTime阈值比较展示了把性能预算写进测试断言的模式。把三者串起来就得到一条可落地的流水线Playwright 真实启动浏览器 → 访问页面 → 通过page.evaluate取 Navigation Timing / Resource Timing 指标 → 与性能预算阈值比较 → 超限则 CI 失败。最佳实践清单规则文档给出的最佳实践可以直接作为代码评审和 CI 配置的检查项✅在 CI 中自动化在每次 Pull Request 上运行浏览器审计尽早捕获性能回归。 ✅始终节流网络与 CPU 节流是默认动作不能省略。 ✅多地区测试从不同地理位置发起审计理解延迟带来的影响。 ✅移动优先优先使用移动设备模拟进行审计。❌不要只依赖开发机高端开发笔记本无法代表预算型智能手机用户的体验。 ❌避免无节流测试在千兆网络下测试会掩盖大部分性能瓶颈。与之呼应仓库中同一performance/metrics区域还有一批常与browser-required一同评审的关联规则写在 packages/content/rules/en/performance/browser-required.mdx 的relatedRules中字体加载优化font-loading.mdx、JavaScript 重定向js-redirects、旧版 JavaScriptlegacy-js以及动画 GIF 转视频animated-content.mdx。也就是说浏览器审计发现瓶颈后往往需要配合这些规则去修复根因。工具与验证体系规则文档推荐的工具组合各自覆盖不同环节Lighthouse浏览器审计的事实标准给出各指标得分与优化建议WebPageTest深度瀑布图分析 多地理位置测试仓库中 packages/content/rules/en/html/webpagetest.mdx 完整记录了其 API 集成、性能预算插件、GitHub Actions 接入与性能回归检测的代码示例PageSpeed Insights把 Lighthouse 的实验室数据与真实用户现场数据field data结合Playwright用于编写自定义性能脚本的现代浏览器自动化框架。验证方法自动化检查在 Lighthouse、PageSpeed Insights 或 DevTools 中测量受影响页面/流程确认目标指标确实改善检查网络瀑布图waterfall或性能时间线确认预期的资源/执行变更真实生效。手动检查在节流的移动端配置下验证改动而不是只在本地桌面环境验证如果该规则映射到性能预算或 Web Vital 阈值确认页面保持在阈值范围内。标准依据规则的sources字段见 browser-required.mdx给出了两个权威标准以 web.dev 的 Learn Performance 作为衡量最终生产行为而非仅本地合成输出的标准以 Chrome Developers 的 Lighthouse overview 作为同样的生产行为衡量标准。这提示我们在落地时浏览器审计的结论最终要用真实用户环境的生产行为来校准而不是只看本地跑出的合成分数。结合 skills/browser-required/SKILL.md 的定位这条规则的完整闭环是静态分析发现问题线索 → 浏览器环境量化确认瓶颈 → 用 DevTools / Lighthouse / 现场数据核实 → 修复后回归验证。【免费下载链接】Front-End-Checklist The essential checklist for modern web development, for humans and AI agents项目地址: https://gitcode.com/gh_mirrors/fr/Front-End-Checklist创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于 Backtracking 的二维网格单词搜索:以 leetcode 仓库多语言实现剖析 Word Search 三种解法

基于 Backtracking 的二维网格单词搜索:以 leetcode 仓库多语言实现剖析 Word Search 三种解法

基于 Backtracking 的二维网格单词搜索:以 leetcode 仓库多语言实现剖析 Word Search 三种解法 【免费下载链接】leetcode Leetcode solutions 项目地址: https://gitcode.com/GitHub_Trending/leetcode1/leetcode 本文以仓库中 articles/search-for-word.md …

2026/9/18 23:25:12 阅读更多 →
UE4引用查看器数据来源与AssetRegistry依赖排查指南

UE4引用查看器数据来源与AssetRegistry依赖排查指南

1. 先搞明白引用查看器到底给你看了什么UE4 里的引用查看器(ReferenceViewer)算是我在项目里点开频率最高的面板之一,尤其是接手别人做的工程、或者大版本合并之后资源莫名其妙报错的时候,第一反应就是把目标资源丢进去看一眼&…

2026/9/18 23:25:12 阅读更多 →
Prompt、Rule、Skill 总被混用?CodeBuddy 模型通道改到 TaoToken 再验 SKILL.md 触发

Prompt、Rule、Skill 总被混用?CodeBuddy 模型通道改到 TaoToken 再验 SKILL.md 触发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 23:24:08 阅读更多 →

最新新闻

AR-NAR混合Transformer架构:YuE模型原理与Python实战

AR-NAR混合Transformer架构:YuE模型原理与Python实战

1. 项目概述:从“YuE”到AR–NAR MoT——一个被热搜掩盖的前沿生成模型架构最近在Hugging Face社区和Python技术圈里,“YuE”这个词频繁出现在各类讨论帖、模型下载页和代码仓库的README里,甚至衍生出“YuE2”这样的迭代代号。但如果你直接搜…

2026/9/19 0:18:44 阅读更多 →
信息系统运维服务方案标书:从评分表倒推与SLA量化落地

信息系统运维服务方案标书:从评分表倒推与SLA量化落地

简介:这是一份面向企业信息化负责人、运维服务商投标人员及IT运维从业者的信息系统运维服务方案标书范本,可用于投标文件编制、运维体系搭建与内部管理制度参考。压缩包共1个文件,为doc格式文档,整体约1.97MB,内容以章…

2026/9/19 0:18:44 阅读更多 →
CANN opbase 中 aclnnFinalize 接口详解:单算子 API 执行框架的资源去初始化与进程安全退出

CANN opbase 中 aclnnFinalize 接口详解:单算子 API 执行框架的资源去初始化与进程安全退出

CANN opbase 中 aclnnFinalize 接口详解:单算子 API 执行框架的资源去初始化与进程安全退出 【免费下载链接】opbase 本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。 项目地址: https://gitcode.com/cann/opbase aclnnF…

2026/9/19 0:18:44 阅读更多 →
react-hook-form 实战指南:基于 React Hooks 的高性能表单状态管理与校验

react-hook-form 实战指南:基于 React Hooks 的高性能表单状态管理与校验

react-hook-form 实战指南:基于 React Hooks 的高性能表单状态管理与校验 【免费下载链接】react-hook-form 📋 React Hooks for form state management and validation (Web React Native) 项目地址: https://gitcode.com/gh_mirrors/re/react-hook-…

2026/9/19 0:18:44 阅读更多 →
5G NSA接入信令流程详解:从LTE锚定到SgNB添加的排障指南

5G NSA接入信令流程详解:从LTE锚定到SgNB添加的排障指南

简介:面向5G网络优化、测试及通信工程技术人员,《5G信令流程详解——5G NSA接入信令流程改进篇》是一份聚焦NSA非独立组网接入全流程的文档资料。内容从NSA双连接架构切入,系统讲解基于EPC的LTE-NR双连接原理、SgNB辅站添加完整流程、初始Att…

2026/9/19 0:18:44 阅读更多 →
YOLOv11岩石裂隙检测与三维地质建模联合优化实战

YOLOv11岩石裂隙检测与三维地质建模联合优化实战

简介:这是一份面向地质勘探、目标检测和三维建模领域从业者与研究人员的技术方案文档,聚焦YOLOv11在岩石裂隙检测与三维地质建模联合优化中的实践方法。文档从YOLO系列算法演进入手,详细剖析YOLOv11的网络结构、训练流程与检测机制&#xff0…

2026/9/19 0:17:44 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →