本阶段 27–34、51 共 9 课,以及 Performance 章末挑战。教程与真实实验分源;模型不计完成。
实验路径为 /performance/<token>/,没有框架、HMR 或 worker。每次故障 / 对照均新建一次导航,避免前一次资源、函数和观察条目混入。先打开 DevTools 开始录制,再点运行;新页自动准备加载场景,再点击“执行目标操作”。27 / 31 / 32 的加载和偏移在准备过程中发生;其他课在目标操作中产生主要成本。
实际负载包含有界的受控 CPU 工作、HTTP 依赖、DOM 几何、布局读写、模块 / 样式和 CSS 动画。受控 CPU 循环采用墙钟预算,不适合验证限速倍率或设备跑分;它用于观察调用与任务结构。受控耗时是素材,不是优化线上代码的阈值。记录固定视口、DPR、可见性、缓存和手动设置的 CPU / Network 条件;先记录正常对照,多轮比较趋势。后台、遮挡或缺少观测 API 时明确提示,不把缺失数据记为零。
LCP / Event Timing / LayoutShift / LongTask 来自浏览器 PerformanceObserver,原始条目与自定义计时分开。单次 handler 不是 INP,布局偏移条目之和不是正式 CLS,本页不输出伪造的 Web Vitals 成绩。浏览器 trace、录制截图、聚合树和 Coverage 需在 DevTools 实际操作。本页导出的观察 JSON 不是 Chrome trace。
引导固定配置一,独立挑战随机两组故障和输入;章末从交互卡顿场景随机抽取,初始隐藏课号与步骤。每会话 30 分钟,最多 100 次运行;重启失效。恢复故障重新导航,停止 / 清理只处理本页任务、计时器、观察器和动画,不删除其他实验或教程记录。
服务核对会话、实际实验文档访问、单次运行报告、指标结构、正常业务结果、故障 / 对照以及原因 / 证据 / 验证。指标来自本地页面,不是可信监考,不证明点击过 DevTools。章末使用独立报告和五维自评 ≥8/10,证据与验证均非零;自评不称为自动能力认证。
| 课次 | 脚本 |
|---|---|
| 27 | 给「慢」分类 |
| 28 | 录制一份有效报告 |
| 29 | 找到真正耗时的函数 |
| 30 | 输入为什么没有及时响应 |
| 31 | 首屏关键内容为何出现晚 |
| 32 | 页面为什么突然跳动 |
| 33 | 布局与绘制为什么昂贵 |
| 34 | 页面加载了多少没用到的代码 |
| 51 | Animations 调试 |
9 个模型各有可操作输入;引导三轮复现 / 对照,两组独立挑战实际浏览器通过。Performance 章末实际案例检查及低分门槛通过,记录导入导出兼容既有 v1 和 Network / Application 章末。录制能看到命名 CPU 栈、任务切分、资源依赖、Layout / Paint、Coverage 与 CSSAnimation;真实 trace / 协议证据与页面自报分开记录。320 / 768 / 1440 的 9 课及章末无整页横向溢出。具体实测版本不推断,见验收记录。