刚做完一个项目的改进需求,总结一些项目心得,主要有两方面:
- 同一个页面,前后端各负责几个模块开发,如何页面整合?
- 前端如何从后端获取数据?
1 前后端按模块开发同一页面
首先,在这个项目中没有用到vue、react这些框架,实现页面的一种做法是前端通过html/css/js把页面搭建出来,再交由后端改造成ftl/jsp等模版页面,但是这个过程造成前后端开发的不同步;另一种做法是前端负责开发一些模块,后端负责开发另一些模块,划分可以按照模块的数据形式,比如可以通过接口获取数据的模块可以交由前端开发,需要很多变量的可以通过后端开发。
具体做法(从前端开发角度出发):
- 划分好前后端开发的模块;
- 后端创建前端的模块根节点,比如
<div id="front_module0_root"></div>
; - 前端创建模版文件,本项目使用
mustache
,在模板中通过{{variable}}
调取数据,js应用参考https://github.com/janl/mustache.js; - 在页面的js文件中,通过ajax获取接口数据注入到模版中;
- 在页面的js文件中,将模版添加到模块根节点
front_module0_root
中。
2 前端如何从后端获取数据
在该项目中有两种方式:
- 接口
- 页面js中的全局变量
第一种方式在上面已经提到了,通过前端js异步读取,一般作为列表等较多数据的交换方式;
第二种方式则是后端将数据存放在页面的<script>
标签中,变量名(以$开头的)全大写英文字母组成,在页面后续引用的js文件中都可以获取,一般作为查看更多链接等单一数据的交换方式。