1.服务器端渲染
服务器端通过页面模板和数据生成HTML页面,返回给客户端。 页面模板保存在服务器端,数据通过业务逻辑生成。
优点
- 传统而已
缺点
- 如果服务器端由多种语言Nodejs,Ruby,Python构成,服务器端模板不好统一
- 前端和后端开发的耦合度高,分工不易。
- 系统用户量大时,服务器负荷高。
2.客户端渲染
服务器端把页面模板和模板需要的数据返回给客户端,在客户端通过js和浏览器渲染页面。
优点
-前端代码容易维护,降低于服务器的耦合度 -减少服务器端负载 -降低服务器响应流量(蚂蚱也是肉) -页面模板可以在前端缓存
缺点
- SEO
- 大页面加载时容易有白屏
- 页面渲染的逻辑移到前端,代码暴漏(露点)
- 如果页面渲染时请求数特别多,会加大服务器的负荷。
3.使用场景
- 项目庞大,前端和后端分工不清,前端不能专注搞前端,后端不能专注搞后端,建议客户端渲染,服务器提供业务接口。SEO的问题可以用特定页面使用服务器渲染就可以了。
- 项目小, 性能要求不高, 没有前后端解耦需求,看团队个人爱好。