指南
可恢复性 (Resumability)
一种渲染范式,其中服务器将应用程序状态序列化为 HTML,允许客户端变得具有交互性而无需执行组件的设置代码。
发表于
目录
定义
一种渲染范式,其中服务器将应用程序状态序列化为 HTML,允许客户端变得具有交互性而无需执行组件的设置代码。
可恢复性是水合的一个根本替代方案。恢复性框架不再是发送一个静态的 HTML 外壳,然后迫使浏览器重播应用程序的启动逻辑来附加事件监听器,而是在服务器上暂停执行,并将所有必需的状态(包括事件处理程序)直接序列化到 HTML 结构中。
为什么重要
可恢复性彻底消除了“水合税”。因为浏览器不需要执行庞大的 JavaScript 包来弄清楚页面应该做什么,所以可交互时间 (TTI) 几乎与首次内容绘制 (FCP) 相同。页面在 HTML 到达的那一刻就具有了交互性。
可恢复性 vs. 群岛架构
- 群岛架构: (如 Astro) 你手动定义需要被水合的特定组件。页面的其余部分保持静态。
- 可恢复性: (如 Qwik) 整个应用程序都可以是动态的,但框架的编译器会自动序列化状态,确保客户端仅下载并执行他们刚刚触发的特定用户交互所需的确切 JavaScript。
相关概念
- 阅读完整指南:作为架构的 Web 性能
- 另请参阅:水合、渲染策略