前后端分离的好处和坏处

Z, ZLW 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等技术方案来优化性能。

回复

我来回复
  • 暂无回复内容

站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部