首页 >

实例详解jQuery Mockjax 插件模拟 Ajax 请求【jquery】

web前端|js教程实例详解jQuery Mockjax 插件模拟 Ajax 请求【jquery】
jquery_mockjax,ajax请求
web前端-js教程
1. 原理
计算机源码有九位数,vscode错误提示配置,ubuntu拼音,tomcat 安装目录,sqlite 当前日期,常州网页设计公司招聘,网站中数据库教程,自建网站服务器,jquery关系图 插件,前端轻量级搜索框架,猫眼反爬虫,php取整,seo互点,简易springboot,a标签虚线,刷信誉网站制作,网页制作基础教程pdf,红模板 百科,dedecms5.7后台登陆模板,jquery 查询页面模板,公安信息管理系统,拉依达准则 matlab程序lzw
jquery-mockjax是用于mock 前台ajax向后台请求的返回数据。
微信源码出售,vscode怎么更改颜色,ubuntu 复制键,tomcat视图怎么打开,爬虫几年,php mysql 清空,承德seo优化哪家便宜,相册网站 原码,功能栏模板lzw
原理很简单
拖拽建站系统源码,vscode编译速度,如何用u盘安装ubuntu,自己定制tomcat,sqlite top用法,网站服务器租,js 多文件上传插件,前端和后端框架,爬虫排名,php台系统,因seo排名点击软件,网站织梦后台一片白,网页 回到顶部,粉色dede模板,phpcms如何生成静态页面,培训班管理系统源码,图像检索程序lzw
在你js代码要发送ajax请求的地方断点一下,然后比较在【引入jquery-mockjax】 和 【没有引入jquery-mockjax】的情况下$.ajax.toString()的值情况。

很明显,引入jquery-mockjax时,这个mock库会对jquery提供的ajax函数做替换。这样就很容易能mock起来。

在实际的开发过程中,前端后台协商好了统一的接口,就各自开始自己的任务了。这时候我有这么一个 Ajax 请求需要从后台获取数据:

$.ajax({url: '/products/'}).done(function(res) {$('#result').html(res);}); 
但是这个服务可能还没有创建,也许是后台开发那个小伙子(就是那些使用 PHP、Ruby、.NET、GoldFusion 等等语言的帅哥们)开小差去了,也许是他忙于其它事情。总之,当这个请求发出的时候我不能得到我想要的结果,我只能得到一个 404 (Not Found) 错误。

这实在是很糟糕,催促也没有用,旁边的测试人员吵着闹着要测试呢,而我自己也迫切希望看到立竿见影的效果。这个时候,就只能依靠自己了,其中一个比较好的方法就是模拟 Ajax 请求,这里我使用 jQuery Mockjax 插件。

地址:jQuery Mockjax

这是一个 jQuery 插件,将其下载下来引用的时候放在 jQuery 之后:

Test
然后在请求代码之前执行模拟请求的代码,使用该插件提供的 $.mockjax() 方法,暂时先指定2个参数 url 和 responseText:

$.mockjax({url: '/products/',responseText: 'Here you are!'}); 
它会监测具有相同 url 的 Ajax 请求并在请求发出时拦截同时模拟响应,responseText 的值就是模拟的响应内容,这样我的程序就能愉快地执行了,最开始那个例子的运行结果就是 ‘Here you are’ 这段内容将会显示到 div#result 中。当我不再需要模拟请求的时候可以使用 $.mockjax.clear() 方法清除掉:

$.mockjax.clear();

一旦后台服务开发完成,我就可以使用该方法清除掉所有模拟请求体验真实的请求效果了。如果不希望一次性清除掉所有的模拟请求,而是针对某个模拟请求,可以传入该模拟请求的 ID,每个模拟请求都会返回一个 ID 值:

var idOne = $.mockjax({ }),idTwo = $.mockjax({ });$.mockjax.clear(idTwo); 
这样就把第二个模拟请求清除掉了,保留了第一个。

由于 Ajax 请求的 url 地址要和模拟请求的 url 对应,假设页面上有很多请求,每个请求都去模拟的话就会感觉很痛苦,好在,该插件的 url 参数提供了一个通配符 * 方式:

$.mockjax({url: '/books/*'}); 
这样除了可以匹配 url 地址为 /books/cook 的请求还可以匹配地址为 /books/math 等等更多请求,甚至还可以使用正则表达式进行更复杂的匹配模式:

$.mockjax({url: /^\/data\/(cook|math)$/i}); 
使用插件的 data 参数可以根据不同的请求数据执行不同的模拟响应:

$.mockjax({url: '/books/',data: {type: 'cook'},responseText: 'You want a cook book!'});$.mockjax({url: '/books/',data: {type: 'math'},responseText: {"content": "You want a math book!"}}); 
就算是同一个 url 地址当请求的数据不同的时候获得的响应内容也不一样。响应内容除了纯文本字符串,也可以使用 json
格式的字符串。

该插件还提供了一个默认参数设置对象 $.mockjaxSettings,没有指定的参数都将使用这些默认值:

$.mockjaxSettings = {logging: true,status: 200,statusText: "OK",responseTime: 500,isTimeout: false,throwUnmocked: false,contentType: 'text/plain',response: '',responseText: '',responseXML: '',proxy: '',proxyType: 'GET',lastModified: null,etag: '',headers: {etag: 'IJF@H#@923uf8023hFO@I#H#','content-type' : 'text/plain'}}; 
将默认值修改之后,后面的模拟请求都会使用修改后的值:

$.mockjaxSettings.contentType = "application/json"; 
这里只修改了其中的 contentType 的默认值。

以上所述通过实例详解jQuery Mockjax 插件模拟 Ajax 请求的相关知识,希望对大家有所帮助。


实例详解jQuery Mockjax 插件模拟 Ajax 请求【jquery】
  • 详解JavaScript for循环中发送AJAX请求问题【jquery】
  • 详解JavaScript for循环中发送AJAX请求问题【jquery】 | 详解JavaScript for循环中发送AJAX请求问题【jquery】 ...

    实例详解jQuery Mockjax 插件模拟 Ajax 请求【jquery】
  • php 判断是否为ajax请求
  • php 判断是否为ajax请求 | php 判断是否为ajax请求 ...

    实例详解jQuery Mockjax 插件模拟 Ajax 请求【jquery】
  • 通过php检查是否是ajax请求办法
  • 通过php检查是否是ajax请求办法 | 通过php检查是否是ajax请求办法 ...