需要牢记的一些重要细节
Posted: Wed Jul 09, 2025 5:39 am
首先,您需要注意缓存静态资源。如果您要并行提供 CSS、图片或 JavaScript,请确保浏览器能够高效地存储和重用它们。内容压缩也是如此。在服务器上启用Gzip 或 Brotli将进一步缩短传输时间。
然后是安全问题。如果要将数据直接注入 HTML,必须确保其经过适当的过滤,以防止 XSS(跨站脚本)等漏洞。如果数据来自外部来源或用户,这一点尤为重要。
当然,监控其效果是值得的。Lighthouse、WebPageTest 或 Chrome 工作职能电子邮件列表 性能仪表盘等工具可以让你衡量这项技术对首次字节时间 (TTFB) 或最大内容绘制 (LCP) 等指标的实际影响。这不仅仅是为了实现一个优雅的解决方案;而是为了确认它确实提升了用户体验。
使用 HTML 流的框架
一些现代框架已经原生使用了 HTML 流,或者将其作为混合渲染策略的一部分。以下是一些主要框架:
React 18(使用 Next.js 或 RSC 等框架)
React 18 正式引入了服务器组件和 SSR 流作为核心的一部分。这允许:
HTML 部分准备好后发送。
让服务器充满悬念。
防止整个前端等待完整的数据。
如何使用它?
Next.js 13+的 app/ 文件夹原生使用React Server Components和 HTML 流。
使用 Node.js 中的 ReactDOMServer.renderToPipeableStream() 来实现这个流程。
Next.js(v12.2+ 及以上版本)
Next.js 在其混合渲染中采用了流式渲染:
您可以混合静态页面、传统 SSR 和流媒体。
使用新的路由器(app/),您可以利用React 18 + HTML 流。
它还支持 suspense、loading.tsx 和嵌套布局等功能。
然后是安全问题。如果要将数据直接注入 HTML,必须确保其经过适当的过滤,以防止 XSS(跨站脚本)等漏洞。如果数据来自外部来源或用户,这一点尤为重要。
当然,监控其效果是值得的。Lighthouse、WebPageTest 或 Chrome 工作职能电子邮件列表 性能仪表盘等工具可以让你衡量这项技术对首次字节时间 (TTFB) 或最大内容绘制 (LCP) 等指标的实际影响。这不仅仅是为了实现一个优雅的解决方案;而是为了确认它确实提升了用户体验。
使用 HTML 流的框架
一些现代框架已经原生使用了 HTML 流,或者将其作为混合渲染策略的一部分。以下是一些主要框架:
React 18(使用 Next.js 或 RSC 等框架)
React 18 正式引入了服务器组件和 SSR 流作为核心的一部分。这允许:
HTML 部分准备好后发送。
让服务器充满悬念。
防止整个前端等待完整的数据。
如何使用它?
Next.js 13+的 app/ 文件夹原生使用React Server Components和 HTML 流。
使用 Node.js 中的 ReactDOMServer.renderToPipeableStream() 来实现这个流程。
Next.js(v12.2+ 及以上版本)
Next.js 在其混合渲染中采用了流式渲染:
您可以混合静态页面、传统 SSR 和流媒体。
使用新的路由器(app/),您可以利用React 18 + HTML 流。
它还支持 suspense、loading.tsx 和嵌套布局等功能。