基本流程:客户端请求node服务器,node服务分析请求(此步可也可根据情况,从node层的缓存中取数据),再请求后一层的应用服务(java...),然后再把数据给客户端。
疑问:
咋一看,感觉这种设计不是更麻烦了吗?中间还有个node层需要去维护?那这种设计的优点是什么呢?主要有以下几点好处:
- 合并请求,有时后台接口颗粒度小,一个页面要请求多个接口才能完成业务功能,改成node服务取请求多个合并数据,并且是内网,请求很快。
- 可以减轻客户端内存,项目用户体验好。不会像mvvm模式的项目把页面渲染和数据请求都压在客户端,可以在node层把数据填充到模板,返回给浏览器直接渲染。
- SEO性好,不像mvvm模式页面由js生成,而是在服务器渲染好html 字符,有利于网页被搜索到。
- 前后端分离的更彻底,解放后端工作量,后端只输出基础数据,node层完成,不用再为了前端页面业务需求,特意输出接口。
- 扩展前端的范围,甚至可以做服务器,数据库层面的优化,比如中间层用nginx,redis来优化项目,应对高并发。
结论: 总的来说,这是一种开发模式的改变,但是有一定的成本,前端开发的工作量会变大,对前端团队的开发,相对来说要求也会更高点。但是出于技术提高的角度,对于前端开发是有益的。