写了八年流式页面,每次都要靠一整块框架才能实现——今天三个 HTML 标记把它彻底原生化了

2008 年,Facebook 提出了一个想法:别让页面从上往下等,让最快的部分先出来。这个思想叫 BigPipe。

十六年后,Chrome 150 把这件事做进了 HTML 本身。

## 旧世界:慢的部分把整个页面卡死

传统 HTTP 响应是从上往下流式的:

“`html

公司名称

← 10ms 出

← 900ms 查询
Loading…
关于我们

← 必须等上面的 div 读完才能发送
“`

900ms 的数据库查询卡在中间,`

` 字节必须等在后面排队——整个页面在用户眼里就是白屏。

## 旧解法:框架来解决浏览器本该做的事

BigPipe 开了个头,后来 React Suspense / Next.js Streaming SSR 把这个能力封装进了运行时:

“`jsx
// React Suspense + Streaming SSR
export default function Page() {
return (

<Suspense fallback={}>
{/* 这个组件的 HTML 等 900ms 才能出 */}

);
}
“`

React 收到流式的 HTML 片段后,用 JavaScript 把 DOM 节点搬进去——但这套机制需要:React 运行时 + 服务端流式支持 + 编译工具链。一个博客页面如果只是想「让推荐位别卡住页脚」,引入这套东西的代价显然太大了。

## 新解法:DPU,三个 HTML 标记,不需要任何 JS

Chrome 150(2026 年 6 月 30 日稳定版)引入了 Declarative Partial Updates,把「等慢内容」这件事从框架层下放到 HTML 解析器。

**第一步:先发出页面骨架,带占位符:**

“`html

公司名称

正在加载推荐内容…

关于我们

“`

整个骨架在 ~50ms 内到达浏览器,页面立刻渲染出 shell。

**第二步:等数据就绪后,在同一个 HTTP 流里发内容块:**

“`html

  • 推荐商品 A
  • 推荐商品 B

“`

当这个 “ 被解析器读到时,它找到同名的 “,把占位区域替换成 “ 内部的内容——整个过程没有 JavaScript 介入,是浏览器自己的 HTML 解析器做的。

这是 2026 年的关键变化:**过去两年用 Declarative Shadow DOM + slot hack 能勉强实现类似效果,但需要 Shadow DOM;DPU 移除了这个限制,任意 `

` 都可以成为占位目标。**

## 性能差异在哪里?

| | 传统 SSR | React Suspense Streaming | DPU(Chrome 150) |
|—|—|—|—|
| 页脚出现时间 | 等 900ms | 等 900ms(流式,但仍需 JS 重组 DOM) | ~50ms(骨架先出) |
| 需要框架 | 否 | 是(React + Next.js) | 否 |
| 需要客户端 JS | 否 | 是(Hydration) | 可选 |
| 浏览器支持 | 所有 | 现代浏览器 | Chrome/Edge 150+(Firefox/Safari 积极跟进) |

LinkedIn 的一篇技术分析指出:DPU 的核心价值在于「把 island architecture(孤岛架构)变成浏览器原生能力」——原本需要 Astro 框架才能做到的「静态壳 + 动态孤岛独立加载」,现在一个 “ 就能声明。

Econify 的评估则更直接:对于 Rails / Django / Go 这类直接吐 HTML 的后端,DPU 让他们不需要任何前端框架就能实现真正的流式输出,这是 HTMX 生态一直在等的东西。

## 你能用它做什么?

**1. 电商详情页**:先出商品图和标题(快),推荐位用占位符(慢),用户不用等 900ms 才能看到「关于我们」链接。

**2. 搜索结果页**:骨架先出,每行结果数据就绪后单独流进来,实现逐行渲染效果,不需要任何 JS。

**3. 仪表盘**:多个 widget 独立加载速度不同,用独立的 marker 让每个 widget 各自填充,不互相阻塞。

**兼容性现状**:Chrome/Edge 150+ 已稳定支持声明式 out-of-order streaming;Firefox 和 Safari 尚未发布,但均给出了 positive 标准化立场,跨浏览器对齐程度比大多数实验特性高。如果需要现在就在生产环境用,Chrome 148+ 可以在 `chrome://flags` 开启 experimental web platform features。

## 落地方案(今天就能试)

“`html

Streaming Demo

My Site

Loading…

Footer content


<!–

Actual content loaded after 2s

–>

“`

后端只需确保 HTTP 响应是分块传输编码(`Transfer-Encoding: chunked`),在骨架之后把 “ 块写到同一个 TCP 连接里即可。Nginx、Node.js `res.write()`、Python `StreamingHTTPResponse` 都原生支持,不需要任何框架。

**下一步**:在你的下一个需要「快内容不等慢内容」的页面里,用三个 marker 替换掉骨架屏方案,今天下午就能跑通本地 demo。

—

标签:DPU、Declarative Partial Updates、流式页面、Chrome 150、Streaming SSR、HTML 新特性、BigPipe、性能优化、前端架构

评论区

0 条评论

登录后可评论。

阿速·性能优化 12 阅读