前端开发的过程中,我们免不了和后端进行联调,这时候就会出现以下的尴尬场景:

  1. 接口没写好,没法做接下来的功能
  2. 功能写好了,接口没写好,没法测这个功能
  3. 联调了,出了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部署本地静态服务器的方法。

  1. 先在tomcat官网上下载tomcat
  2. 解压到一个本地文件夹。把项目部署到tomcat中,部署的方法可参考这篇文章
  3. 点击bin目录下的startup.bat就启动项目了。接下来访问http://localhost:8080/item(item为项目名称)就可以了
  4. 补充一点利用webstorm的方法,当我们在开发过程中更改了代码以后,可以使用webstorm更新部署的代码,比手动覆盖要方便。具体的使用方法在这里

简单利用jQuery,让前端开发不再依赖于后端的接口的更多相关文章

  1. 简单利用jQuery加tomcat,让前端开发不再依赖于后端的接口

    前端开发的过程中,我们免不了和后端进行联调,这时候就会出现以下的尴尬场景: 接口没写好,没法做接下来的功能 功能写好了,接口没写好,没法测这个功能 联调了,除了BUG,不知道锅在谁身上,只得陪后端耗时 ...

  2. 利用connect建立前端开发服务器

    利用connect建立前端开发服务器 对于前后端完全分离的系统,开发时候我们需要给前端配置服务器,当然我们可以选择Nginx之类的服务器进行配置,但我们也能使用NodeJS构建高自由度的前端开发服务器 ...

  3. js/jquery/html前端开发常用到代码片段

    1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...

  4. 利用HBuilder打包前端开发webapp为apk

    转载 标签: apk / 打包 / vue 现在的前端开发可谓是,百花齐放啦,什么都可以做,只有想不到没有做不到的,今天就简单的介绍用vue,ng或者是react开发的单页应用如何打包为apk,在移动 ...

  5. 利用jquery实现前端同步请求---判断姓名是否为空并设置事件

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...

  6. Web前端开发最佳实践(1):前端开发概述

    引言 我从07年开始进入博客园,从最开始阅读别人的文章到自己开始尝试表达一些自己对技术的看法.可以说,博客园是我参与技术讨论的一个主要的平台.在这其间,随着接触技术的广度和深度的增加,也写了一些得到了 ...

  7. 前端开发数据mock神器 -- xl_mock

    1.为什么要实现数据 mock 要理解为什么要实现数据 mock,我们可以提供几个场景来解释, 1.现在的开发很多都是前后端分离的模式,前后端的工作是不同的,当我们前端界面已经完成,但是后端的接口迟迟 ...

  8. web前端开发需要具备的技能

    web前端开发需要具备以下7种技能: 1.页面标记(HTML) HTML页面固定,标签不多,相对来说学起来比较容易.编写HTML代码需遵循HTML代码规范(http://www.cnblogs.com ...

  9. 利用jquery.validate以及bootstrap的tooltip开发气泡式的表单校验组件

    表单校验是页面开发中非常常见的一类需求,相信每个前端开发人员都有这方面的经验.网上有很多成熟的表单校验框架,虽然按照它们默认的设计,用起来没有多大的问题,但是在实际工作中,表单校验有可能有比较复杂的个 ...

随机推荐

  1. 算法实践--不相交集合(Disjoint Sets)

    什么是不相交集合(Disjoint Sets) 是这样的一组set,任何元素最多只能在一个set中 至少支持查找Find和合并Union操作 实现方式(基于树) 每个set都是一棵树 每棵树都由树的根 ...

  2. postgresql数据库备份

    一.工具备份数据 打开windows下的命令窗口:开始->cmd->安装数据库的目录->进入bin目录: 导出命令:pg_dump –h localhost –U postgres ...

  3. 用Jedis调用Lua脚本来完成redis的数据操作

    1.先完成一个简单的set/get操作 package com.example.HnadleTaskQueue; import redis.clients.jedis.Jedis; import ja ...

  4. debug protractor

    HTAir:protractor-cucumber-typescript kbladewht$ node --inspect-brk=0.0.0.0:1229 node_modules/protrac ...

  5. Centos Tomcat监控

    1.Window环境下jdk的bin目录中提供jvisualvm.exe工具,但是linux环境中的jdk未提供. 用window下的jvisualvm远程监控linux环境下的tomcat 两种连接 ...

  6. 李清华201772020113《面向对象程序设计(Java)》第六周学习总结

    第一部分 理论知识 1.继承 用已有类来构建新类的一种机制.新类可以继承父类的方法和域,同时可以在新类中添加新的方法和域. 已有类称为:超类.基类或父类.新类称作:子类.派生类或孩子类. 子类的构造器 ...

  7. ElasicSearch(1)

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...

  8. Django 部署(Nginx+uwsgi)

    使用 uwsgi 来部署 安装 uwsgi sudo pip install uwsgi --upgrade 使用 uwsgi 运行项目 uwsgi --http :8001 --chdir /pat ...

  9. MySQL 物理文件体系结构的简单整理说明

    本文出处:http://www.cnblogs.com/wy123/p/7102128.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  10. 微信开发 invalid openid

    微信开发时候测试号运行正常,换到正式号就会报invalid openid的错误. 看了微信问答系统里的答案,说是json格式的问题,但是我这边不是这个原因. 后来突然想到了,应该是AppId和AppS ...