前后端分离的好处和坏处
7409
前后端分离的好处:1、提高开发效率;2、优化用户体验;3、增强代码可维护性;4、减轻后端服务器的请求压力;5、适应能力强;6、错误秒接。前后端分离的坏处:1、首屏渲染的时间长;2、不利于搜索引擎的优化(SEO);3、不能使用浏览器里面的前进后退功能;4、一些版本较低的浏览器对其支持度不足。
一、前后端分离的好处
1、提高开发效率
前后端各负其责, 前端和后端都做自己擅长的事情,不互相依赖,开发效率更快,而且分工比较均衡,会大大提高开发效率。
2、优化用户体验
用户访问速度快,提升页面性能,优化用户体验。没有页面之间的跳转,资源都在同一个页面里面,无刷线加载数据,页面片段间的切换快,使用户体验上升了一大截;前后端不分离,稍不留神会触发浏览器的重排和重绘,加载速度慢,降低用户的体验
3、增强代码可维护性
增强代码可维护性,降低维护成本,改善代码的质量。前后端不分离,代码较为繁杂,维护起来难度大,成本高。
4、减轻后端服务器的请求压力
最大的好处就是前端JS可以做很大部分的数据处理工作,对服务器的压力减小到最小。
5、适应能力强
同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端。
6、错误秒接
后台错误不会直接反映到前台,错误接秒较为友好。
二、前后端分离的坏处
1、首屏渲染的时间长
将多个页面的资源打包糅合到一个页面,这个页面一开始需要加载的东西会非常多,而网速是一定的,所以会导致首屏渲染时间很长,首屏渲染后,就是无刷新更新,用户体验相对较好。
2、不利于搜索引擎的优化(SEO)
现有的搜索引擎都是通过爬虫工具来爬取各个网站的信息,这些爬虫工具一般只能爬取页面上(HTML)的内容,而前后端分离,前端的数据基本上都是存放在行为逻辑(JavaScript)文件中,爬虫工具无法爬取,无法分析出你网站到底有什么内容,无法与用户输入的关键词做关联,最终排名就低。
3、不能使用浏览器里面的前进后退功能
4、一些版本较低的浏览器对其支持度不足
拓展阅读
前后端分离的原因
- 现有开发模式的适用场景不全面:比如后端为主的MVC,做一些同步展现的业务效率很高,但是遇到同步异步结合的页面,与后端开发沟通起来就会比较麻烦;Ajax为主SPA型开发模式,比较适合开发APP类型的场景,但是只适合做APP,因为SEO等问题不好解决,对于很多类型的系统,这种开发方式也过重。
- 前后端职责不清:在业务逻辑复杂的系统里,我们最怕维护前后端混杂在一起的代码,因为没有约束,M-V-C每一层都可能出现别的层的代码,日积月累,完全没有维护性可言。
- 开发效率问题:淘宝的Web基本上都是基于MVC框架webx,架构决定了前端只能依赖后端。直接基于后端环境开发也很痛苦,配置安装使用都很麻烦。为了解决这个问题,我们发明了各种工具,比如 VMarket,但是前端还是要写VM,而且依赖后端数据,效率依然不高。另外,后端也没法摆脱对展现的强关注,从而专心于业务逻辑层的开发。
- 对前端发挥的局限:性能优化如果只在前端做空间非常有限,于是我们经常需要后端合作才能碰撞出火花,但由于后端框架限制,我们很难使用Comet、Bigpipe等技术方案来优化性能。