必须分离。这个分离也指工作流程和岗位职责上的,有几种方式,下面按『不推荐』程度排列:
1 、前端接管后端 mvc 中的 view ,比如说前端来写 jsp 页面。
1.1 、前端单纯接管 jsp 的编写、维护(可用模板语言),要懂 jsp ,要跑整个项目,例如 java ,那就是开个 eclipse 跑项目搞了。
1.2 、前端不需要跑项目,设计稿、交互和业务逻辑确定后,和后端定义好数据格式,页面数据采用模拟的方式。有点像现在用 js 前后端分离的搞法。但其实还是写 jsp 。可用看看百度的这个方案:
http://fex.baidu.com/blog/2014/11/another-fis-solusition-jello/2 、设计稿、交互和业务逻辑确定后,和后端定义好数据格式,后端只提供数据接口( JSON 、开发环境可跨域),前端用 AJAX 获取数据。 前端用 HTML + JS 负责整个设计和业务的实现。
2.1 、不使用框架,不做单页应用。就是传统的编写页面的做法 + AJAX
2.2 、使用一些 MVVM 框架( React + Flux 、 Vue + backbone 、 Angular 、 Avalon 等),连 router 这些都在前端控制。前端的开发变成类似 APP 开发的模式。
2.3 、前后端加多一层 node.js 来做接口。前端来写。
2.4 、前后端加多一层 node.js 来做 view 层和接口。 view 可用 react 来实现前后端同构的方案。