随着ajax restful 的兴起, 传统的server端的MVC模式也慢慢发生变化, 传统的view层 慢慢推向前端 使得前端模板引擎得到飞速发展, 前端渲染也变得越来越多. 基于json的数据交互协议 也慢慢成为大家的公知.
移动端兴起,使得server端的API 需要能做到数据打通 PC,native,webapp等,
借助 native趋势 短小轻快的微型服务,也是受大家情迷. 对与前端来说我们
需要写pc-web 也需要写html5 甚至需要以hybird方式与native 进行混合, 过去静态资源存放在服务端业务项目中 也慢慢影响到我们的工作效率
现状
强依赖server端开发环境
面对 gradle maven等等 (根据server项目的选型). 这些东西我们基本上很少用到,我们需要花大量时间搭环 境, 有时候面临项目启动不起来,某人生病请假等诸多问题.强依赖server端部署发布
每次发版本需要将相关资源 放到相关server项目中去部署发布与server沟通成本过高
要么等server写好接口
要么就是写好静态页面扔给server套页面,
或者大神口述给你协议.Server同学太累了
一 不仅仅需要写业务代码 还要在页面贴标签. 还要管静态资源部署.
解耦势在必行
解耦包括 开发环境解耦 部署解耦 调试解耦
1.开发环境解耦
通过使用ajax restful 方式使的 前端接管view层. 套用现有的一些模板引擎完成渲染.
server端只提供纯数据 完全面向业务的模式
这样我们就可以使用自己喜欢的ide webstorm,sb等等
2.部署解耦
其实这层就是依赖上一层的,接管静态资源的部署
前端可以自由使用grunt gulp等做一些资源部署处理
这层是很重要的 是打通html5多端共享的关键之处.
前端拥有了向 native 微信等第三方平台 提供服务能力
3.数据交互解耦
mock是native端用于和 server端 调试的方式,在前端领域同样适用.
server端在开发某一个api前 先提供给约定好的协议 包括request 和 response
类似如下
- 公司有mock服务的 直接联mock进行联调
- 无mock 则自己本地模拟json文件进行联调
解耦所带来的问题
- 跨域问题
这个主要体现在XMLHttprequest上面,默认情况下 XMLHttprequest会采用同源策略, 我们可以使用安全跨域策略CORS.
关于CORS的使用
正在编写中.....
2.静态资源被缓存
这个就可以对首次进入html页面进行不缓存设置.
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<meta HTTP-EQUIV="Expires" CONTENT="0">
资源部分进行版本控制
<script src="share/js/app.js?v=121"></script>
<script src="share/js/config.js?v=121"></script>
<script src="share/js/config.lazyload.js?v=121"></script>
<script src="share/js/config.router.js?v=121"></script>
<script src="share/js/main.js?v=121"></script>
<script src="share/js/services/ui-load.js?v=121"></script>
<script src="share/js/directives/setnganimate.js?v=121"></script>
<script src="share/js/directives/ui-butterbar.js?v=121"></script>
极速开发模式
解耦完成之后就可以拥有1 : N的能力
比如在一个我们的前端项目中 可以访问到如下的server的微服务
以下是我们的知了服务体系
testUrl : {
uc : "http://IP:端口/uc",
message : "http://IP:端口/message"
"ucm" : "http://IP:端口/ucm",
push : "http://IP:端口/notify",
im : "ws://IP:端口/notify/customerIM",
sop : "http://IP:端口",
mBridge : "http://IP:端口/mBridge",
credit : "http://IP:端口/credit"
}
我们可以快速开始启动一个项目 脑子有灵光了 就能开搞 不需要等待 也许人生就应是这样.