Ajax

  ajax属于前后端半分离开发技术.
  ajax异步无刷新技术,是基于单页应用的出现ajax技术才普及大众化,

是1999年微软推出的一种可以用xmlhttprequest对象来发送http请求
在使用Ajax请求的时候需要通过一下四个步骤

  1. 创建xmlhtttprequest(小黄人)对象
  2. 派遣xmlhttprequest对象去服务器拿数据
  3. xmlhttprequest拿到数据返回客户端
  4. 更新页面

在初步刚学习ajax时候因为后台不存在所以无法排遣xmlhttprequest去后台拿到数据为了能够调试数据就会需要虚拟的数据,这时候mockjs就出现了mockjs会生成一组随机的数据供开发人员使用,用于数据的调试
mockjs代码如下

let data = Mock.mock({
  'list|5' : [{
    'id|+1' : 1, // id 从1开始自增
    'name' : '@cname()', // 随机生成一个中文名
    'addr' : '@county(true)', // 随机生成一个国内的地址
    'age|18-30' : 1, // 生成一个年龄,年龄的取值范围 18-30
    'birth' : '@date', // 生成一个随机日期
    'gender': /[男女]/, // 性别
    'email' : '@email', // 生成一个邮箱
    'hobby|1' : ['玩游戏','看电影','睡觉'],
    'time' : '@date("yyyy-MM-dd")',
    'telephone' : /^1[3-9]\d{9}$/
  }]
});
console.log(data);

ajax的使用
5. 创建xmlhttprequest

let xhr; // 这个变量拿来装 xhr 对象
if(window.XMLHttpRequest){//如果全局存在xmlhttprequest这个对象
  // firefox,chrome,opera,safari 等这些浏览器
  xhr = new XMLHttpRequest();//创建一个小黄人对象
} else {
  // 说明是 IE6,IE5 及其以下版本
  xhr = new ActiveXObject('Microsoft.XMLHTTP');
}

2.利用xmlhttprequest发送请求请求后台的数据

xhr.open(method,url,async)//open方法是用于建立后台数据库的连接

然后就使用send方法实际向服务器发送请求

xhr.open("GET","/users/isUser?name=xiejie&age=18",true);
xhr.send(null);

当我们发送请求结束之后会返回一系列的状态值
请求未初始化(0):还没有调用 send 方法的时候

服务器建立连接(1):已经调用 send 方法,正在发送请求

请求已接收(2):send 执行完成

请求处理中(3):正在解析响应内容

请求已完成(4):响应内容解析完毕,可以在客户端使用了
当返回的状态为4时候我们就可以对 请求回来的数据做出一系列的处理
具体代码如下

// 使用 mock 来拦截请求
Mock.mock(/users/, function () {
  return Mock.mock({
    'list|5': [{
      'id|+1': 1, // id 从1开始自增
      'name': '@cname()', // 随机生成一个中文名
      'addr': '@county(true)', // 随机生成一个国内的地址
      'age|18-30': 1, // 生成一个年龄,年龄的取值范围 18-30
      'birth': '@date', // 生成一个随机日期
      'gender': /[男女]/, // 性别
      'email': '@email', // 生成一个邮箱
      'hobby|1': ['玩游戏', '看电影', '睡觉'],
      'time': '@date("yyyy-MM-dd")',
      'telephone': /^1[3-9]\d{9}$/
    }]
  })
})
btn.onclick = function () {
  // 1. 创建 xhr 对象
  let xhr; // 这个变量拿来装 xhr 对象
  if (window.XMLHttpRequest) {
    // firefox,chrome,opera,safari 等这些浏览器
    xhr = new XMLHttpRequest();
  } else {
    // 说明是 IE6,IE5 及其以下版本
    xhr = new ActiveXObject('Microsoft.XMLHTTP');
  }
  // 2. 发送请求
  xhr.open("GET", "/users", true);
  xhr.send(null);

  // 3. 监听xhr回来没有
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
      // console.log(111)
      console.log(JSON.parse(xhr.responseText));
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值