服务端渲染(BSR):DOM树在服务端生成,然后返回给前端。
客户端渲染(SSR):前端去后端取数据在客户端生成DOM树。
一、服务端渲染
优点:
1、尽量不占用前端的资源,前端这块耗时少,速度快。
2、有利于SEO优化,因为在后端有完整的html页面,所以爬虫更容易爬取信息。
缺点:
1、不利于前后端分离,开发的效率降低了。
2、对html的解析,对前端来说加快了速度,但是加大了服务器的压力。
二、客户端渲染
优点:
1、前后端分离,开发效率高。
2、用户体验更好,我们将网站做成SPA(单页面应用)或者部分内容做成SPA,当用户点击时,不会形成频繁的跳转。
缺点:
1、前端响应速度慢,特别是首屏,这样用户是受不了的。
2、白屏:在ajax得到响应之前,页面中之后Loading。
3、不利于SEO优化,因为爬虫不认识SPA,所以它只是记录了一个页面。
三、服务端和客户端渲染的区别:
客户端渲染 | 服务端渲染 | |
---|---|---|
本质区别(html的完整拼接) | 在客户端生成DOM树 | 在服务端生成DOM树 |
响应速度 | 响应速度慢 | 响应速度快 |
SEO优化 | 不利于SEO优化 | 多个页面,更有利于爬虫爬取信息,有利于SEO优化 |
开发效率 | 采用前后端分离的方式开发,效率更高,大部分业务采取的渲染方式 | 服务端渲染逻辑分离的不好,不利于前后端分离,开发效率低 |
四、直观的区分服务端渲染和客户端渲染:
- 源码里如果能找到前端页面中的内容文字,那就是在服务端构建的DOM,就是服务端渲染,反之是客户端渲染。
五、服务端渲染还是客户端渲染使用场景选择:
我们要根据业务场景去选择渲染的方式:
- 如果是企业级网站,主要功能是页面展示,它没有复杂的交互,并且需要良好的SEO,那我们应该使用服务端渲染。
- 如果是后台管理页面,交互性很强,它不需要考虑到SEO,那我们应该使用客户端渲染。
具体使用哪种渲染方式也不是绝对的,现在很多网站使用服务端渲染和客户端渲染结合的方式:首屏使用服务端渲染,其他页面使用客户端渲染。这样可以保证首屏的加载速度,也完成了前后端分离。
网友评论