服务端渲染与客户端渲染区别及优缺点
在早期的时候,由于页面较为简单,前后端分离开发模式的还没有广泛使用,都是由后端进行并完成页面的拼装,然后后端接收到这个文件,就可以直接解析并展示.
如今随着页面内容越来越复杂,前端也不在仅仅是展示页面.现在前端页面应用更加复杂,也更加完善,随着ajax技术的应用,前后端分离的开发模式也越发收到开发者的青睐,这也意味着,后端不再是提供一个完整的页面,而是提供一些api提供给前端所需要的json数据.前端拿到数据后再前端完成页面的拼装,展示在浏览器上,这就是客户端渲染.
服务器端渲染的优点及缺点
优点
- 后端生成静态文件.即生成缓存片段,这样就可以减少数据库查询浪费的时间,对于数据变化不大的页面非常高效
- 有利于SEO.因为在后端有完整的html页面,所以爬虫更容易爬取获得信息,更有利于SEO
- 前端工作量小.因为html部分在后端完成,浏览器只需要负责展示
- 无需占用客户端资源.即解析模板的任务都由后端来做,客户端只需要解析标准的html即可,对于客户端占用的资源更少
缺点
- 不利于前后端分离,开发效率低,使用服务端渲染,不利于项目高效开发.另外,如果是服务器端渲染,则前端就简单开发一个静态html页面,然后后端修改成模板,
- 占用服务器端资源,即服务器端完成html模板的解析,如果请求过多,会对服务器造成一定的压力,如果是前端渲染,就把这些解析的压力分摊给了前端.
客户端渲染的优点及缺点
优点
- 前后端分离,前端专注于前端UI,后端专注于API设计开发
- 体验更好,比如我们将网站做成SPA或者部分做成SPA
缺点
- 前端响应速度慢.如果是客户端渲染,前端还要进行拼接字符串的过程,需要额外消耗时间,不如服务器端渲染速度快
- 不利于seo,目前的百度与谷歌的爬虫对于spa都是不认的,只记录一个页面,所以SEO很差,因为服务器没有保存完整的HTML,而是前端通过JS进行DOM拼接,爬虫无法获取信息.除非搜索引擎的seo可以增加对于JavaScript爬取能力
使用服务器端渲染还是客户端渲染
根据实际情况进行选择,比如如果是企业级网站,主要功能是展示而没有复杂的交互,并且需要良好的SEO,这时,我们可以使用服务端渲染,而类似后端管理,交互性强,不需要考虑SEO,那么就可以考虑使用客户端渲染,还有现在的一些网站采用了首屏服务器端渲染即对于用户最开始打开的那页面采用的是服务端渲染,这样就保证了渲染速度,其他页面采用客户端渲染,完成前后端分离