先后端分离,最佳实践

先后端分离,可让各端变得更专一。今天的话题,结合我以前的项目场景,从新思考“先后端”的定义,并讨论下《先后端分离,最佳实践》。
原文地址:先后端分离,最佳实践
博客地址:blog.720ui.com/前端

先后端分离是什么

咱们来回顾下传统的 MVC 模式,客户端发送 AJAX 请求,服务端接受到该请求并返回 JSON 数据返回给客户端,客户端解析 JSON 进行页面渲染。node

如今,为了提升开发效率,细化职责,先后端分离的需求愈来愈被重视,服务端负责业务/数据接口,前端负责展示/交互逻辑。若是将浏览器这一端视为前端,而服务器这一端视为服务端的话,能够将以上的 MVC 模式,进行改形成先后端分离模式。web

为何须要先后端分离

有了先后端分离模式,前端人员更加关注界面展示/交互逻辑,服务端人员更加关注业务/数据接口,分工明确,职责清晰。后端

  • 前端职责:页面UI,页面展现、交互、渲染,用户体验等。
  • 后端职责:数据存储,业务逻辑,RESTful 接口,性能、可用性、伸缩性、扩展性、安全性等。

此外,当咱们的存在多端场景,例如,一个服务端RESTful API,按照这种方式 Web/iOS/Android/PC/U3D 五个前端对于后端来讲就无差异了,这是多么棒的设计啊。浏览器

先后端分离,最佳实践

简单分离模式

咱们采用的方案是 REST 服务这个轻量级的 Web 服务,客户端发送 AJAX 调用服务端 RESTFul API 接口请求,服务端收到请求后将 JSON 格式的响应结果发送给客户端,这样就完成了一次交互。
安全

服务端渲染模式

这种模式,基本能够知足咱们通常产品的需求。然而,对于须要作SEO的产品,这种方式就有点力不从心了。由于,重要内容都在前端进行异步组装,这样是没法被搜索引擎收录的,因此必需要考虑服务端渲染才能够被SEO。服务器

服务端渲染模式,结合我以前的项目场景,列举两种方式。微信

方式一,JSP渲染

经过JSP进行渲染。这个方式,实际上,就是在前端项目中加入Java代码,经过JSP做为模板渲染。前后端分离

方式二,静态页渲染

经过FreeMarker生成静态页进行渲染。这个方式,须要考虑动静分离,CDN分发等场景。异步

Node.js渲染模式

对于上面的方案,存在一个重要的问题,前端人员须要涉及Java技术,没法达到先后端解耦。随着Node.js技术的普及,咱们把渲染的工做从服务端抽出来到前端,明确的先后端职责划分。

总结

从传统的 MVC 模式,演变到先后端分离模式,可让各端变得更专一。今天的话题,主要简单介绍了简单分离模式,JSP渲染模式,静态页渲染模式,Node.js渲染模式。

(完)

更多精彩文章,尽在「服务端思惟」微信公众号!

相关文章
相关标签/搜索