简单利用jQuery加tomcat,让前端开发不再依赖于后端的接口
前端开发的过程中,我们免不了和后端进行联调,这时候就会出现以下的尴尬场景:
- 接口没写好,没法做接下来的功能
- 功能写好了,接口没写好,没法测这个功能
- 联调了,出了BUG,不知道锅在谁身上,只得陪后端耗时间
要解决这个问题,可以使用功能强大的mockjs,它能拦截AJAX请求并返回规定好的假数据。但是这需要学习mockjs的语法,且由于我之前不知道这个强大的东西的存在,只好自己摸索出了一种让前端开发不再依赖于后端的方法:
需要的工具:jQuery, tomcat(http-server也可以,但要注意http-server请求本地数据时不能用post方法,只能get), webstorm(可选)
这个方法的关键在于,jQuery的ajax函数可以请求本地的json数据,于是我们可以这么做。
var whatMode = 'dev' // 指明使用开发模式还是生产模式的变量,可选值'dev'/'prod'
// obj对象有以下属性fake, url, succ, fail,在下方调用makeAction函数时会说明各个参数。实际的ajax请求还包括许多附加参数,比如type, data,由于和此方法的核心无关,请大家视自己的实际情况进行改造。
var makeAction = function(obj) {
if (whatMode === 'dev') {
$.ajax({
url: obj.fake,
dataType: 'json',
success: function (data) {
obj.succ(data)
},
error: function() {
obj.fail()
}
})
} else if (whatMode === 'prod') {
$.ajax({
url: obj.url,
dataType: 'json',
success: function (data) {
obj.succ(data)
},
error: function() {
obj.fail()
}
})
}
}
var option = {
fake: 'data.json', // 自己编的假数据的本地文件的路径地址
url: 'api', //接口
succ: function (result) { // success回调函数
console.log(result)
},
fail: function () { // error回调函数
console.log('请求失败')
}
}
makeAction(option)
这样,当whatMode
变量为'dev'时,就会自动去请求编好并存放在本地的假数据,为'prod'时,就会去请求接口的数据。这个whatMode
变量,可以放在public.js中。如果是iframe嵌套的页面结构,也可以放在最上层的页面中,只要取top.whatMode
就可以取到最上层窗口的变量值了,借助这种方法,就实现了不依赖后端写页面,只要在控制台的"network"中看自己的请求头中发送的参数是否正确,并验证自己返回的自己所编写的假数据符合不符合预期功能就好了。
以上,就是这个方法的主要部分,剩下要介绍的是如何部署本地的静态服务器,和以上方法无关了,网上也有大量的教程,时间太晚了,白天还要上班,我先睡了,明天上班再把利用tomcat部署本地静态服务器的方法补上了!
(说明:不使用tomcat,使用node.js的http-server也是不错的选择)
接下来补上用tomcat部署本地静态服务器的方法。
- 先在tomcat官网上下载tomcat
- 解压到一个本地文件夹。把项目部署到tomcat中,部署的方法可参考这篇文章
- 点击bin目录下的startup.bat就启动项目了。接下来访问http://localhost:8080/item(item为项目名称)就可以了
- 补充一点利用webstorm的方法,当我们在开发过程中更改了代码以后,可以使用webstorm更新部署的代码,比手动覆盖要方便。具体的使用方法在这里
简单利用jQuery加tomcat,让前端开发不再依赖于后端的接口的更多相关文章
- 简单利用jQuery,让前端开发不再依赖于后端的接口
前端开发的过程中,我们免不了和后端进行联调,这时候就会出现以下的尴尬场景: 接口没写好,没法做接下来的功能 功能写好了,接口没写好,没法测这个功能 联调了,出了BUG,不知道锅在谁身上,只得陪后端耗时 ...
- Angular01 利用grunt搭建自动web前端开发环境、利用angular-cli搭建web前端项目
搭建angular开发环境 一.下载并安装node 官网地址:点击前往 二.利用npm安装cnpm 安装好node后就可以使用npm命令啦 查看版本:npm -v 安装cnpm:npm install ...
- 简单了解学习PHP(针对前端开发)
1.服务器(服务器系统) 通常是指较强的计算能力能够同时服务多人的计算机 常见的服务器操作系统: 1.各个版本的Linux操作系统 2.乌班图.centos 3.mac os(苹果) 4.windo ...
- 利用connect建立前端开发服务器
利用connect建立前端开发服务器 对于前后端完全分离的系统,开发时候我们需要给前端配置服务器,当然我们可以选择Nginx之类的服务器进行配置,但我们也能使用NodeJS构建高自由度的前端开发服务器 ...
- Web前端开发最佳实践(1):前端开发概述
引言 我从07年开始进入博客园,从最开始阅读别人的文章到自己开始尝试表达一些自己对技术的看法.可以说,博客园是我参与技术讨论的一个主要的平台.在这其间,随着接触技术的广度和深度的增加,也写了一些得到了 ...
- web前端开发学习路径图
第一阶段 WEB前端工程师课程 HTML语句,HTML页面结构.css语法.style属性.link和style标签.id属性.等HTML语句中的相关属性: 通过Dreamweaver制作出跨越平台限 ...
- 前端开发数据mock神器 -- xl_mock
1.为什么要实现数据 mock 要理解为什么要实现数据 mock,我们可以提供几个场景来解释, 1.现在的开发很多都是前后端分离的模式,前后端的工作是不同的,当我们前端界面已经完成,但是后端的接口迟迟 ...
- web前端开发需要具备的技能
web前端开发需要具备以下7种技能: 1.页面标记(HTML) HTML页面固定,标签不多,相对来说学起来比较容易.编写HTML代码需遵循HTML代码规范(http://www.cnblogs.com ...
- 前端开发利器 Sublime Text 3 使用技巧和总结笔记
这篇文章是本人在使用该工具进行前端开发的自我总结,思路也许不是很清楚,不过还是希望对读者的你有所帮助,千万别把这边文章收藏起来发霉哦,无论背多少次快捷键,还不及自己多实际操作几次. 目前官方版正式版 ...
随机推荐
- 【Python】 sorted函数
我们需要对List.Dict进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本方法2.用built-in函数so ...
- MsSqlServer 复制分发概述
Replication方案可以分为Snapshot Replication, Transactional Replication, Peer-2-Peer Replication, Merge Rep ...
- GRIDVIEW 控件
http://www.cnblogs.com/shanymen/archive/2009/05/22/1486654.html GridView控件是.net里的一个显示数据控件,该控件制作很人性化, ...
- TJI读书笔记12-接口
TJI读书笔记12-接口 抽象类和抽象方法 接口 完全解耦和策略模式 接口间的继承关系 工厂模式 乱七八糟不知道怎么归类的知识点 接口和抽象类为我们提供了更强又有力的接口和实现分离的方法. 抽象类和抽 ...
- SER SERVER存储过程
Transact-SQL中的存储过程,非常类似于C#语言中的方法,可以重复调用.当存储过程执行一次后,可以将语句存储到缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. 一 ...
- spring junit
转载自 http://blog.csdn.net/funi16/article/details/8691575 在写单元测试的时候,一般是对数据库进行增删改查的操作,这个时候,如果之前删除了某条记录, ...
- scala学习:apply方法
摘抄两段话: 在明确了方法调用的接收者的情况下,若方法只有一个参数时,调用的时候就可以省略点及括号.如 " to ",实际完整调用是 ".to()".但 &qu ...
- 读取当前键值,并赋值给LED
/********************************* 代码功能:读取当前键值,并赋值给LED 使用函数: digitalRead(数字输入端口号); 创作时间:2016*10*07 作 ...
- Python3 多线程下载代码
根据http://www.oschina.net/code/snippet_70229_2407修改而来的增强版.貌似原版源自Axel这个多线程下载工具. ''' Created on 2014-10 ...
- 启用 mvc webapi 的 session功能可用
默认 mvc webapi 不开启 session 会话支持 所以需要修改配置,在 Global 开启 session 支持 如下: 1.重写 init() 方法 public override vo ...