前后端分离技术方案
Posted java充电站
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前后端分离技术方案相关的知识,希望对你有一定的参考价值。
随着互联网的发展,前后端开发中各种新技术或框架不断涌现。而在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线。将要与浏览器打交道的开发者成为前端开发人员,反之成为后端开发人员。其实,前后端的区分不应以浏览器作为分界线,而前后端分离并不只是一种开发模式,而更是web 应用的一种架构模式。
在前后端不分离架构中,所有的静态资源和业务代码统一部署在同一台服务器上。服务器接收到浏览器的请求后,进行处理得到数据,然后将数据填充到静态页面中,最终返回给浏览器。这样不仅会导致耦合性过强,不易维护,而且将大大降低整个页面的渲染速度,特殊情况下会出现页面渲染时间过长,降低用户体验的情况。
图 1-1 前后端不分离架构
如果实现了前后端分离,耦合性将大大降低,且更易维护。前后端开发人员可以同时进行开发,且相互不影响。后端只需返回数据,而前端只需将数据解析, 并呈现给用户。
现有主流分离技术
目前前后端分离的方式主要有两种,一种是使用 nodejs 作为中间层进行全栈式的开发,另一种是前后端通过约定的数据接口进行通信,以相同的数据格式如 JSON 格式进行数据传输。
图 2-1 借助 nodejs 进行前后端分离
图 2-2 借助数据接口进行前后端分离
分离技术的比较
两种前后端分离方式的优缺点主要如表 2-1 所示
在早期的 JSP+SERVLET 的开发方式来说,就是处于未分离的时期。在此期间, 一些由于前后端未分离而导致的问题愈发突出。例如前端无法单独调试,由于耦合过大,前端不可避免的会遇到后台代码等。在发现这些问题后,开发者逐渐采取了 Ajax 与 SPA 应用(单页应用)结合的开发方式。
前端负责开发页面,通过接口(Ajax)获取数据,然后利用 dom 操作对页面进行数据的绑定。而这属于前后端半分离期。在此期间,虽然一定程度上解决了未分离时期所产生的问题,但在使用的过程中,又产生了新的问题,其中 js 的大量冗余和页面渲染缓慢的问题尤其突出。在此基础上,开发者们进一步提出了需将 View 层与 Controller 层交由前端负责,而后端只负责 Modle 层,处理业务逻辑以及数据等的解决方案。而 Node.js 则在前端与后端之间搭建了一个桥梁,使得前端开发人员也能负责Controller 层。
至此,前后端算是真正意义上的分离了。但是技术永远会随着需求而不断变更,我坚信经过一段时间的发展,此模式下也会显现出其他新的问题,到那时, 开发者们也会采取新的解决方法。对于前后端分离,我认为这不仅仅是技术和架构上的分离,其体现的更是一种独立组合的哲学思想。只有相互独立但又能相互交流,才能有组合出更多的形式和产生更多的可能。
长按二维码
以上是关于前后端分离技术方案的主要内容,如果未能解决你的问题,请参考以下文章
第560期网易高级前端技术专家蔡剑飞:前后端分离实践经验分享