当前位置: 首页 > news >正文

Ajax入门

来源:黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)_哔哩哔哩_bilibili

Ajax

Ajax介绍

概念:Asynchronous JavaScript And XML,异步的JavaScript和XML。

作用:

  • 数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。

  • 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用的校验等等。

同步与异步:

  • 同步:在服务器处理数据的过程,客户端浏览器一直处于等待状态,直到服务器处理完毕,响应数据给客户端,客户端才能继续执行其他操作。

  • 异步:服务器在处理数据的过程中,浏览器客户端是可以继续执行其他操作,客户端不需要等待服务器响应的结果。

原生Ajax

  1. 准备数据地址:http://yapi.smart-xwork.cn/mock/169327/emp/list

  2. 创建XMLHttpRequest对象:用于和服务器交换数据

    <body><input type="button" value="获取数据" onclick="getData()"><div id="div1"></div>
    </body>
    ​
    <script>function getData(){//1. 创建XMLHttpRequest var xmlHttpRequest  = new XMLHttpRequest();//2. 发送异步请求xmlHttpRequest.open('GET','http://yapi.smart-xwork.cn/mock/169327/emp/list');xmlHttpRequest.send();//发送请求//3. 获取服务响应数据xmlHttpRequest.onreadystatechange = function(){if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){document.getElementById('div1').innerHTML = xmlHttpRequest.responseText;}}}
    </script>
  3. 向服务器发送请求

  4. 获取服务器响应数据

代码实例:

  1. 当点击“获取数据”按钮的时候,会调用对应的方法。

  2. 创建好XMLHttpRequest对象。

  3. 发起GET请求,获取数据。

  4. 获取服务器端响应回来的数据,将响应回来的数据填充在div这个区域当中。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>原生Ajax</title>
</head>
<body>
​<input type="button" value="获取数据" onclick="getData()">
​<div id="div1"></div>
​
</body>
<script>function getData(){//1. 创建XMLHttpRequest var xmlHttpRequest  = new XMLHttpRequest();
​//2. 发送异步请求xmlHttpRequest.open('GET','http://yapi.smart-xwork.cn/mock/169327/emp/list');xmlHttpRequest.send();//发送请求
​//3. 获取服务响应数据xmlHttpRequest.onreadystatechange = function(){if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){document.getElementById('div1').innerHTML = xmlHttpRequest.responseText;}}}
</script>
</html>

Axios2

介绍:Axios 对原生的Ajax进行了封装,简化书写,快速开发。

官网: Axios中文文档 | Axios中文网

Axios入门

Axios入门:

  1. 引入Axios的js文件

    <script src="js/axios-0.18.0.js"></script>
  2. 使用Axios发送请求,并获取响应结果

    axios({method: "get", // 请求方式url: "http://yapi.smart-xwork.cn/mock/169327/emp/list" // 请求路径
    }).then((result) => {  // 成功回调函数console.log(result.data);
    });// 获取服务器端响应回来的数据,使用箭头函数的形式,Ajax请求成功之后自动调用的函数,接收一个js的对象result,通过result.data就可以拿到result里面的data属性。或者
    axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => {console.log(result.data);
    })
    axios({method: "post",url: "http://yapi.smart-xwork.cn/mock/169327/emp/deleteById", // 根据id删除信息data: "id=1" // 指定post的请求参数
    }).then((result) => {console.log(result.data);
    });或者
    axios.post("http://yapi.smart-xwork.cn/mock/169327/emp/deleteById","id=1").then(result => {console.log(result.data);
    })

请求方式别名:

  • axios.get(url [, config])

    axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then((result) => {console.log(result.data);
    });
  • axios.delete(url [, config])

  • axios.post(url [, data[, config]])

    axios.post("http://yapi.smart-xwork.cn/mock/169327/emp/deleteById","id=1").then((result) => {console.log(result.data);
    });
  • axios.put(url [, data[, config]])

案例

基于Vue及Axios完成数据的动态加载展示

  1. 数据准备的url: http://yapi.smart-xwork.cn/mock/169327/emp/list

  2. 在页面加载完成后,自动发送异步请求,加载数据,渲染展示页面(性别:1 代表男,2 代表女)。

在页面加载完成之后,通过vue的生命周期来 自动的发送异步请求。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Ajax-Axios-案例</title><script src="js/axios-0.18.0.js"></script><script src="js/vue.js"></script>
</head>
<body><div id="app"><table border="1" cellspacing="0" width="60%"><tr><th>编号</th><th>姓名</th><th>图像</th><th>性别</th><th>职位</th><th>入职日期</th><th>最后操作时间</th></tr>
​<tr align="center" v-for="(emp,index) in emps"><td>{{index + 1}}</td><td>{{emp.name}}</td><td><img :src="emp.image" width="70px" height="50px"></td><td><span v-if="emp.gender == 1">男</span><span v-if="emp.gender == 2">女</span></td><td>{{emp.job}}</td><td>{{emp.entrydate}}</td><td>{{emp.updatetime}}</td></tr></table></div>
</body>
<script>new Vue({el: "#app",data: {emps:[]},mounted () { // 当Vue对象创建完成之后,触发这个钩子函数//发送异步请求,加载数据axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => {this.emps = result.data.data; // 为当前Vue对象当中的emps数据模型赋值})}});
</script>
</html>
http://www.xdnf.cn/news/939763.html

相关文章:

  • SAP顾问职位汇总(第23周)
  • ​**​CID字体​**​ 和 ​**​Simple字体​**​
  • Python实例题:Python计算数理统计
  • 大语言模型(LLM)面试问题集
  • beckHoff_FB --> GET SNC 功能块
  • 程序问题实录
  • 模块缝合-把A模块换成B模块(没写完)
  • Spring缓存注解的陷阱:为什么@CacheEvict删不掉Redis缓存?
  • 正常流程、可选流程和异常
  • OPENCV图形计算面积、弧长API讲解(1)
  • 【Linux】文件赋权(指定文件所有者、所属组)、挂载光驱(图文教程)
  • 如何计算1920*1080分辨率的YUV或RGB图像数据占用大小?
  • Cinnamon修改面板小工具图标
  • 分词算法总结:不同分词算法的优点和缺点
  • 【量化】策略交易类型
  • Razor编程RenderXXX相关方法大全
  • 鸿蒙的一些布局
  • 更新积木报表2.0.0注意事项
  • 第八章 信息安全基础知识
  • 大三下第16周总结
  • 华为OD机考-内存冷热标记-多条件排序
  • 4、docker常用命令
  • 前端八股笔记
  • 设备驱动与文件系统:05 文件使用磁盘的实现
  • 2025-05-01-决策树算法及应用
  • Kotlin REPL初探
  • 单片机 传感器知识讲解 (一)红外避障模块,声控模块,人体红外模块
  • 9.贪心算法(随想录)
  • 电子学会Python考前英语单词
  • art-template模板引擎