客户端渲染
就是我们的页面开始是没内容的,加载js后,js会生成和操纵dom,最后由浏览器渲染出页面,这一系列的操作都是在浏览器完成的。(前端去后端取数据生成DOM树。)

加载出来的是一个空的页面,该页面加载了app.js这个文件,该js文件会产生和操作Dom,最终浏览器渲染和绘制页面。
客户端渲染的优点:
1、前后端分离,开发效率高。
2、用户体验更好,我们将网站做成SPA(单页面应用)或者部分内容做成SPA,当用户点击时,不会形成频繁的跳转。
客户端渲染的缺点:
1、前端响应速度慢,特别是首屏,这样用户是受不了的。
2、不利于SEO优化,因为爬虫不认识SPA,所以它只是记录了一个页面。
Server Side Rendering(服务端渲染)
SSR 目的是对搜索引擎更友好,客户端渲染搜索引擎无法抓取页面相关内容,也就是用户搜不到网站的相关信息,排名就会比较靠后。(DOM树在服务端生成,然后返回给前端。)

原理:将 html 在服务端渲染,合成完整的 html 文件再输出到浏览器。
适用场景:客户端的网络比较慢,客户端运行在老的或者直接没有 JavaScript 引擎上
服务端渲染的优点:
1、尽量不占用前端的资源,前端这块耗时少,速度快。
2、有利于SEO优化,因为在后端有完整的html页面,所以爬虫更容易爬取信息。
服务端渲染的缺点:
1、不利于前后端分离,开发的效率降低了。
2、对html的解析,对前端来说加快了速度,但是加大了服务器的压力。
直观的区分服务端渲染和客户端渲染:
源码里如果能找到前端页面中的内容文字,那就是在服务端构建的DOM,就是服务端渲染,反之是客户端渲染。
总结
本质的区别:是谁来完成了html的完整拼接,服务端渲染是在服务端生成DOM树,客户端渲染是在客户端生成DOM树。
响应速度:服务端渲染会加快页面的响应速度,客户端渲染页面的响应速度慢。
SEO优化:服务端渲染因为是多个页面,更有利于爬虫爬取信息,客户端渲染不利于SEO优化。
开发效率:服务端渲染逻辑分离的不好,不利于前后端分离,开发效率低,客户端渲染是采用前后端分离的方式开发,效率更高,也是大部分业务采取的渲染方式。




