服务端渲染
Server-side Rendering
高级网页服务端渲染(Server-side Rendering)是在收到页面请求后,由服务器生成包含页面内容的 HTML,再发给浏览器。它让用户在页面 JavaScript 运行前就能看到内容,也方便搜索引擎读取商品页、文章页等公开页面。
你可能会说:「我想让文章页打开时就有正文,不用等浏览器把脚本跑完才显示内容。」
动手看看打开商品页先看到内容
1
用户打开商品页,浏览器向服务器请求页面;服务器收到请求后,开始生成商品内容。
要点服务端渲染是怎么把页面交给浏览器的?
- 1
服务器先生成当前页面内容
你打开一篇文章时,服务器可以先取出文章数据,把标题和正文放进 HTML,再返回给浏览器。这样浏览器收到响应后,就有内容可以显示。
- 2
交互可能还要等浏览器接手
页面能显示,不代表所有交互都已就绪。如果按钮由前端框架接管,浏览器通常还要加载 JavaScript,并完成注水激活,按钮才会按预期工作。
- 3
每次请求可能带来服务器开销
因为页面内容可能在请求到来时才生成,所以渲染会占用服务器资源,也可能增加响应时间。我们会根据内容更新频率,决定哪些页面需要这样处理。
容易混淆的地方
它和纯客户端渲染的区别,在于页面主要内容由谁先生成:后者通常先返回页面框架,再由浏览器运行 JavaScript 取得并显示内容。它也不同于静态站点生成:静态页面通常提前生成,服务端渲染则可以在收到请求时生成页面。一个网站可以按页面混用这些方式。
什么时候用
适合用
- 做公开的商品详情页,价格和库存会变化,你希望访问者打开页面时就能看到当前内容。
- 做文章或帮助中心页面,希望浏览器收到的 HTML 已包含正文,方便内容被读取和索引。
- 做需登录的订单详情页,希望服务器按当前用户取数据,生成首次显示的页面内容。
不适合用
- 做内部使用的绘图工具,主要内容由用户在浏览器里实时编辑;客户端渲染更贴合这种交互。
- 做很少更新的活动介绍页,所有访客看到的内容相同;提前生成静态页面通常更简单。
练一练选一个答案,看看解释
你在做一个帮助中心:文章公开、更新不频繁,希望打开时就能看到正文。你会怎样选择渲染方式?
让 AI 帮你做复制给 AI Agent 直接用
请检查现有前端框架的页面实现:让公开文章详情页使用服务端渲染,首次返回的 HTML 包含标题和正文。保留现有交互,并说明数据在哪里获取、哪些交互需要注水激活;不要把仅在服务器可用的信息传给浏览器。