先了解所有的渲染模式
CSR:就是客户端渲染,所有的请求,合并都是在客户端发生。SSG:静态生成,再生成HTML的时候已经包含所有所需信息,适合做不会有内容变化的网站SSR:服务端渲染,在服务端请求,合并HTML。ISR:增量式生成,服务端只渲染一部分,剩下的交给客户端去渲染。
什么是服务端渲染
在了解服务端渲染之前,我们先了解一下浏览器的渲染流程
- 获取HTML文档资源,构建DOM树。
- 处理CSS文件,构建CSSOM树。
- 将CSSOM树和DOM树组合成一个Render树。
- 在Render 树上运行渲染进程,确定每个节点的宽高以及位置。
- 最后一步,将各个节点绘制到屏幕上
在第一步的时候遇到JS会去加载JS文件,阻塞后续流程,等待js加载完才会继续,会有预加载扫描器在我们加载页面之前先扫描代码,在我们请求HTML的时候就已经去请求JS资源。
前端会有一些页面所需的数据存在于服务端,我们需要通过接口获取数据,拿到数据之后处理数据,重新渲染,这就是客户端渲染的流程。
那什么是服务端渲染呢
就是把处理HTML的过程放到服务端,在服务端已经组合好,然后把HTML返回给浏览器,不需要JS的执行,可以直接构建出DOM,渲染到页面上.
服务端渲染和客户端渲染的区别
| 区别 | 服务端渲染 | 客户端渲染 | 详解 |
|---|---|---|---|
| 白屏时间 | 短 | 长 | 客户端只需要请求HTML加载DOM,用时相对于客户端渲染很少 |
| 服务器压力 | 大 | 小 | 请求以及HTML都是在服务端进行的,对于服务器的压力比较大 |
| SEO | 友好 | 不友好 | 对于搜索引擎低级爬虫来说,客户端只能爬到基础HTML没有数据,服务端渲染能拿到完整的HTML。 |