Skip to content

SSR (Server Side Rendering)

SSR 是 "Server-Side Rendering"(服务器端渲染)的缩写。它表示由服务器生成网页的 HTML,并将其发送给客户端,而不是只发送一个空的 HTML 外壳,并依赖 JavaScript 来生成页面内容。

在传统的客户端渲染中,服务器会向客户端发送一个空的 HTML 外壳和一些 JavaScript 脚本,然后从服务器的 API 中获取数据,并用动态内容填充页面。这会导致页面的初始加载时间较慢,不利于用户体验和 SEO。

使用 SSR 后,服务器会生成已经包含动态内容的 HTML,并将其发送给客户端。这使得首屏加载速度更快,并对 SEO 更加友好,因为搜索引擎可以爬取到渲染后的页面。

SSR 加载流程

  1. 浏览器加载 HTML → 用户立即看到完整内容
  2. JavaScript 加载完成 → React hydrate(水合),绑定事件交互
  3. 后续页面导航 → SPA 模式,客户端渲染

优点

  • 首屏渲染更快:用户无需等待 JavaScript 加载和执行,浏览器加载 HTML 后即可看到完整内容,而不是在用户访问时才进行渲染。
  • SEO 友好:搜索引擎爬虫可以直接抓取

缺点

  • 服务器压力大:每次请求都需要服务器生成 HTML,可能会增加服务器的负载,尤其是在高流量情况下。
  • 开发复杂度高:需要在服务器端和客户端之间共享代码和状态,可能会增加开发和维护的复杂度。

如何提升首屏性能

  • 缓存(Caching):对静态内容和 API 响应进行缓存,减少服务器渲染的压力,提高响应速度。
  • 流式渲染(Streaming Rendering):服务器可以在生成 HTML 的同时,将内容分块发送给客户端,减少首屏加载时间。

Powered by VitePress