比方说,我们有一个页面,其中充满了用户特定的数据,我们无法事先使用Static Generation进行渲染。我们必须使用Server-side rendering,因为我们的页面将是特定于用户的,并且必须在服务器上呈现它。当我计算近似数字时,(从理论上来说)SSR似乎比仅将页面文件发送给用户并让他呈现页面要慢:
先决条件:
- 让我们说服务器会立即从其数据库中获取特定于用户的数据
- 让我们说客户端会立即渲染经过解析和处理的html / css,因此“重新渲染”是指将React代码解析为纯html / css
===
使用SSR:
- 从客户端向服务器发送请求的时间= 10毫秒
- 服务器呈现页面的时间= 20ms
- 将响应发送回客户端的时间= 10毫秒
- 在客户端上重新呈现页面的时间= 20毫秒
结论:
- TTFB = 20ms
- FCP = 40ms
- TTI = 60ms(比没有SSR的时间长)
没有SSR:
- 从客户端向服务器发送请求的时间= 10毫秒
- 将响应发送回客户端的时间= 10毫秒
- 客户端呈现页面的时间= 20ms
结论:
- TTFB = 20ms
- FCP = 40ms
- TTI = 40ms
如果我的逻辑正确,那么Server-side Rendering的目的是什么? Static Generation对我来说很有意义,但SSR却没有。