You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js中“在用户请求前预渲染页面”是什么意思?静态生成与SSR有何区别

Next.js「用户请求前预渲染页面」概念说明

你提到的官方原文如下:

另一方面,如果你无法在用户发起请求前预渲染页面,那么静态生成并不是一个好的选择

这句话是对静态生成(SSG)核心运行逻辑的直接描述,具体含义可以拆分理解:

  • 静态生成的页面渲染动作,发生在项目构建(build)阶段,也就是你把代码打包上线前就已经全部执行完成,时间点远早于任何真实用户发起访问请求的时刻
  • 构建阶段会直接生成好完整的页面HTML、关联的静态资源和提前拉取的页面数据,这些静态文件会直接存放在服务器或者CDN节点上,用户请求到达时不需要做任何额外计算,直接返回现成文件即可

如果满足以下任意一种场景,就属于「无法在用户请求前预渲染页面」的情况,不适合用静态生成:

  • 页面内容和用户身份强绑定,比如用户个人中心、订单页等,不可能在构建阶段就提前生成所有用户的专属页面
  • 页面内容依赖只有请求时才能拿到的动态参数,比如用户请求携带的Cookie、请求头地域信息、实时查询参数等,构建阶段无法获取这些数据
  • 页面内容更新频率极高,比如实时行情、直播比分、即时公告等,构建生成的静态页刚上线就会过期,无法满足内容时效性要求

你可以结合SSR的逻辑做对比理解:SSR的渲染动作发生在用户请求到达之后,每次请求都会临时拉取数据、渲染HTML再返回,刚好适配上述无法提前预渲染的场景。

内容的提问来源于stack exchange,提问作者tanjona Randrianasolo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:06:04