Mockjs+Ajax实践
需要完成的工作:利用mock js随机生成数据,通过ajax请求,获取这些数据并展示在网页中。
一 mock js随机生成数据
官方文档中,Mock.mock( ),可以说是mock的精髓所在。
Mock.mock( rurl?, rtype?, template|function( options ) )
根据数据模板生成模拟数据。
-rurl:当拦截到匹配rurl的Ajax请求时,根据数据模板template生成模拟数据,作为响应数据返回。
-rtype:表示需要拦截的ajax请求类型,比如get、post、put、delete等。
//js部分
var testPath = '/born', //匹配ajax操作的路径
testMethod = 'get'; //匹配ajax请求类型
let temp = {
'list|5-10': [{
'aid|+1': 1,
'title|1-6': '我是标题 ', //30字以内的标题
'update_time|10000-99999':10000,
'thumb':'@URL', //随机url地址
'color' : '@color', //随机颜色
'image':'@IMAGE("200x100")' //尺寸为200*100的图片
}]
}
Mock.mock(testPath, testMethod, temp); //生成模拟数据
二 Ajax操作
点击按钮,获取数据,并对HTML元素进行操作
//HTML部分
<h3>==测试·准备请求ajax·测试==</h3>
<p class="p"></p>
<button>点我请求ajax</button>
<article class="temp">
<!--<a href="">
<p class="title"></p>
<img src="" alt="">
</a> -->
</article>
<article class="hide" id="module">
<a href="">
<p class="title"></p>
<img src="" alt="">
</a>
</article>
//Ajax请求处理
$("button").bind('click',function(){
$.ajax({
url: testPath,
type: 'get',
dataType: 'json',
timeout: 1000,
success:function(data, status, jqXHR){
fillTemplet(data, status, jqXHR); //ajax请求成功,执行这些操作
},
error:function(req,status,err){
console.log('some err')
console.log('req',req);
console.log('status',status);
console.log('err',err);
}
})
});
三 DOM操作
采用了两种方法,一种是直接在js中写入HTML,包括元素、内容等,另一种是克隆HTML模板,然后对其添加内容。推荐使用方法二,便于修改调试,符合内容、样式、数据分离的规则。
//js部分
//方法一
function fillTemplet(data, status, jqXHR){
let father = $('.temp');
$.each(data.list,function(index,obj){
//根据mock数据(temp)生成内容
//直接写入html
let block = '<a href="'+ obj.thumb +'">'
+ '<p class="title">'+ obj.title +'</p>'
+ '<img src="'+ obj.image +'" alt="我是图片">'
+'</a>'
father.append(block);
})
}
//方法二
function fillTemplet(data, status, jqXHR){
let father = $('.temp');
$.each(data.list,function(index,obj){
//方法二,克隆HTML中写好的module模板
let child = $('#module').clone().removeAttr('id').removeClass('hide');
child.children('a').attr('href',obj.thumb);
child.find('p').text(obj.title).css('color',obj.color);
child.find('img').attr('src',obj.image);
father.append(child);
})
}
Mockjs+Ajax实践的更多相关文章
- Ajax实践之用户是否存在
关于Ajax在之前的学习中,已经对它的基础知识有了初步的了解.仅仅是欠实践. 那么接下来就让实践来检验一下真理吧! 基础见:http://blog.csdn.net/liu_yujie2011com/ ...
- (转)JAVA AJAX教程第一章-初始AJAX
既然是认识AJAX,理论和实践相结合,这样让自己学的更快,理解更深入,我分一下几点: 1. 认识传统的同步交互方式和AJAX解决方案 2. AJAX使用到的技术 3. 实例体验AJAX 一.同步 ...
- AJAX之JSON
AJAX=Asynchronous JavaScript and XML(异步的JavaScript 和XML). AJAX不是新的编程语言,而是一种是用现代标准的新方法,用于创建快速动态网页的技术. ...
- HTTP请求封装:Ajax与RESTful API
一.HTTP请求 HTTP即超文本传输协议,用以进行HTML 文件. 图片文件. 查询结果等的网络传输. 一个完整的HTTP请求包括:请求行.请求头.空行和请求数据(请求数据可以为空) HTTP1.1 ...
- ajax 兼容性问题解决 集锦
这两天刚解决了ajax多浏览器兼容的问题,主要就针对Firefox的,开始还以为Firefox不支持ajax呢(别笑我呀,不怎么了解Firefox也没用过,呵呵),多亏看了下面的文章才让我了解ajax ...
- React笔记_(5)_react语法4
ajax 数据应用场景 在真实的开发环境中,拿到了产品需求,第一件事不是逼着后台开发人员先完成,然后前端再介入开发,这样太浪费时间. 正确的做法是跟后端人员先商量好接口名称,请求参数,返回的数据格式等 ...
- Daily Scrumming 2015.10.23(Day 4)
今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 继续学习rails ActiveRecord 数据库迁移 域名备案申请 学习rails router配置与 ...
- 关于php上传文件过大的表单回填
也许标题有点绕口,有点无法让人理解.请原谅博主,语文学的不好,都赖体育老师. 问题场景重现:在某次迭代中,接到这样一个需求:当新建或编辑一个Bug(包含附件以及其他字段)上传附件过大时,退回到编辑页面 ...
- atitit.ajax 最佳实践跟框架选型 o99
atitit.ajax 最佳实践跟框架选型 1. 选型框架dwr/dwr3 跟jq 1 2. DWR方便的地方分为两个地方. 1 3. dwr 优点: 1 4. 缺点: 2 5. 根jq的区别 2 1 ...
随机推荐
- 1036 Boys vs Girls (25分)(水)
1036 Boys vs Girls (25分) This time you are asked to tell the difference between the lowest grade o ...
- CF632(div.2)C. Eugene and an array
https://codeforces.ml/contest/1333/problem/C 大概题意是规定和为0的数组为不合格数组,询问给定数组中共有多少个合格子数组. 解题 子数组的数量 一个长度为 ...
- mysql 聚集函数 count 使用详解
mysql 聚集函数 count 使用详解 本文将探讨以下问题 1.count(*) . count(n).count(null)与count(fieldName) 2.distinct 与 coun ...
- python3(三十五)file read write
""" 文件读写 """ __author__on__ = 'shaozhiqi 2019/9/23' # !/usr/bin/env py ...
- AJ学IOS(11)UI之图片自动轮播
AJ分享,必须精品 先看效果 代码 #import "NYViewController.h" #define kImageCount 5 @interface NYViewCont ...
- Apache SkyWalking
Apache SkyWalking 什么是 SkyWalking SkyWalking 是观察性分析平台和应用性能管理系统. 提供分布式追踪.服务网格遥测分析.度量聚合和可视化一体化解决方案. 支持J ...
- 怎么自定义DataGridViewColumn(日期列,C#)
参考:https://msdn.microsoft.com/en-us/library/7tas5c80.aspx 未解决的问题:如果日期要设置为null,怎么办? DataGridView控件提供了 ...
- 21-Java-Hibernate框架(一)
一.Hibernate了解 Hibernate框架是Java持久层的框架,是Gavin King发明的,2001年发布的,JBoss公司的产品,2003年进入市场. Hibernate是基于对象来操作 ...
- Python-selenium-自动化测试模型
1.线性测试 优势:每一个脚本都是完整独立的,每一个脚本对应一个测试用例 缺点:开发成本高,会有重复操作重复脚本:维护成本也高,修改重复操作的脚本时,要逐一进行修改. 2.模块化驱动测试 把重复的操作 ...
- stand up meeting 12/21/2015
part 组员 工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 完成PDF UI主页面的页面切换功能,待完善 4 完善 ...