1. 动静分离的实现思路
动静分离是将网站静态资源(HTML,JavaScript,CSS,img,videos等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。
2. 动静分离的实现方式
2.1 CDN方式
2.2 Nginx方式实现
3. 动静分离需要解决的问题
- 跨域:
解决方式:springboot,nginx及jsonp - 分布式会话:
解决方式:分布式缓存中间件redis。
4. 动静分离的实现优缺点
4.1 优点
api接口服务化:
动静分离之后,后端应用更为服务化,只需要通过提供api接口即可,可以为多个功能模块甚至是多个平台的功能使用,可以有效的节省后端人力,更便于功能维护。
前后端开发并行:
前后端只需要关心接口协议即可,各自的开发相互不干扰,并行开发,并行自测,可以有效的提高开发时间,也可以有些的减少联调时间
减轻后端服务器压力,提高静态资源访问速度:
后端不用再将模板渲染为html返回给用户端,且静态服务器可以采用更为专业的技术提高静态资源的访问速度。
4.2 缺点
开发量变大,前后端交流成本升高:后端api返回的数据,往往是有自身逻辑在内的,比如返回数据中的包含status(1-处理中,2-处理成功,3-处理失败),前端需要理解status的不同含义,对应的前端操作需要理解(如,status =1 or status = 2,不可提交)。
在业务高速发展时需要慎重考虑:因为开发量变大,如果在业务开始阶段,缺乏前端又要求开发速度很快,就需要慎重考虑这种方式的实现成本对业务发展的影响。