异步交互技术Ajax

news2024/11/24 6:16:25

Ajax

  • 概念:Asynchronous JavaScr And XML 异步的JavaScript和XML
  • 作用:
    • 数据交换:通过Ajax可以给服务器发送请求,并获取服务响应的数据
    • 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想,用户是否可用的校验等

同步与异步

  • 同步请求过程
    • 浏览器页面在发送请求给服务器,在服务器处理请求的过程中,浏览器页面不能做其他的操作。只能等到服务器响应结束后才能,浏览器页面才能继续做其他的操作。
  • 异步请求过程
    • 浏览器页面发送请求给服务器,在服务器处理请求的过程中,浏览器页面还可以做其他的操作。

原生Ajax(基本不用

  • 准备数据地址(本地数据或者链接数据)
  • 创建XMLHttpRequest对象:用于和服务器交换数据
  • 向服务器发送请求
  • 获取服务器响应数据 

具体代码如下:(我访问的是本地数据,可能会出现无法获取的问题,请参照文章解决)

写文章-CSDN创作中心

<!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>
    <button onclick="getData()">获取数据</button>
    <div id="result"></div>

    <script>
      function getData() {
        // 1.创建XMLHttpRequest对象
        var xmlhttp = new XMLHttpRequest();

        // 3.获取响应数据
        xmlhttp.onreadystatechange = function () {
          if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var jsonData = JSON.parse(xmlhttp.responseText);

            // 处理 JSON 数据
            var result = "";
            for (var i = 0; i < jsonData.length; i++) {
              var name = jsonData[i].name;
              var age = jsonData[i].age;
              var city = jsonData[i].city;

              // 构建结果字符串
              result +=
                "Name: " +
                name +
                "<br>Age: " +
                age +
                "<br>City: " +
                city +
                "<br><br>";
            }

            // 更新页面内容
            document.getElementById("result").innerHTML = result;
          }
        };

        // 2.发送异步请求
        xmlhttp.open("GET", "ajax.json", true);
        xmlhttp.send();
      }
    </script>
  </body>
</html>

运行后点击按钮 

 

Axios

  • 介绍:Axios对原生的Ajax进行了封装,简化了书写,快速开发。
  • 官网:​​​​Axios 
  • Axios的使用
    • 1.引入Axios的js文件
    • 使用Axios发送请求,并获取响应结果
      • get请求
      • post请求
  • 请求方式的别名
    • axios.get(url,[,config]):发送get请求、[,config]表示其他的配置信息,[]中的内容可选
    • axios.delete(url,[,config]):发送post请求,
    • axios.post(url,[data[,config]]):
    • axios.put(url,[,data[,config]]):

具体代码如下:(ps:由于提供的url地址已经失效,在点击按钮无法实行最终效果,仅供参考)

<!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>
    <!-- 引入Axios的js文件 -->
    <script src="js/axios-0.18.0.js"></script>
  </head>
  <body>
    <input type="button" value="获取数据GET" onclick="get()" />

    <input type="button" value="删除数据POST" onclick="post()" />
  </body>
  <script>
    function get() {
      //通过axios发送异步请求-get
      // axios({
      //     method: "get",
      //     url: "http://yapi.smart-xwork.cn/mock/169327/emp/list"
      // }).then(result => {
      //     console.log(result.data);
      // }) .then为成功回调,即请求成功后进行的操作

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

    function post() {
      //通过axios发送异步请求-post
      // axios({
      //     method: "post",
      //     url: "http://yapi.smart-xwork.cn/mock/169327/emp/deleteById",
      //     data: "id=1"
      // }).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);
        });
    }
  </script>
</html>

Axios案例()

 提供的链接也失效了,展示意义不大,后面再来完善文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysqldump + python 定时备份数据库

场景&#xff1a; 需要对mysql进行定时备份&#xff0c;受限于硬盘空间的大小&#xff0c;需要对备份的数据需要定时清理 python代码实现&#xff1a; # -*- coding:UTF-8 -*- """ProjectName : HotelGo2DelonixPmxFileName : fix_missing_ratesDescripti…

第二章:L2JMobius学习 – 安装jdk17

L2JMobius是一套开源的 LineageII 的服务器端代码&#xff0c;使用Java语言编写。想要运行L2JMobius源程序的话&#xff0c;需要安装jdk17版本。首先&#xff0c;下载jdk17版本。 https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.msi 当然&#xff0c;也…

华为OD机试真题 Java 实现【新员工座位安排系统】【2022Q4 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 工位由序列F1,F2…Fn组成&#xff0c;Fi值为0、1或2。其中0代表空置&#xff0c;1代表有人&#xff0c;2代表障碍物。 1、某一空位的友好度为左右连续…

ModaHub魔搭社区:腾讯云发布的向量数据库有什么特点?技术架构是什么样的?

腾讯云发布的向量数据库有什么特点&#xff1f;技术架构是什么样的&#xff1f; Tencent Cloud VectorDB从性能上看&#xff0c;具备高性能、高可用、低成本等优势&#xff0c;比如单索引支持10亿级向量规模&#xff0c;最快支持毫秒级数据实时更新&#xff0c;适用于AI运算、…

【STM32】自举模式 和 程序下载(ST-Link和串口示例)

STM32官方网站STM32中文社区 如果遇到不清楚的概念&#xff0c;可以看之前的文章。 一、自举模式二、程序下载2.1 概述2.2 实操2.21 SWD 方式下载&#xff08;ST-Link&#xff09;2.22 串口下载 一、自举模式 STM32有一个特殊的功能&#xff0c;就是可以通过不同的方式启动程序…

maven 工程结构 和 archetype 模板

文章目录 一、maven 工程结构1.1. jar 工程结构1.2. war 工程结构 二、archetype 模板2.1. 推荐的 archetype 模板2.2. 自定义 archetype 模板2.2.1 自定义模板示例 有没有好奇过&#xff0c;通过 Maven 生命周期命令构建项目时&#xff0c;我们并没有指定源文件目录和编译后的…

5张图告诉你:同样是职场人,差距怎么这么大?

点赞 ➕ 评论 ➕ 收藏 养成三连好习惯 在职场中&#xff0c;我们常常会听到各种各样的抱怨&#xff1a; &#x1f469;‍⚖️‍ 小A: 凭什么别人每次述职绩效都是优秀呀&#xff1f; 感觉TA也没干啥呀! &#x1f575; 小B: 凭啥这个事情&#xff0c;领导指派TA去对接呀&#…

“设计模式”概述

设计模式代码样例&#xff1a;Git 设计原则 依赖倒置原则&#xff08;DIP&#xff09; 高层模块&#xff08;稳定&#xff09;不应依赖底层模块&#xff08;变化&#xff09;&#xff0c;二者都应依赖于抽象&#xff08;稳定&#xff09;抽象不应依赖于实现细节&#xff0c;…

YoloV5/YoloV7改进---注意力机制:线性上下文变换LCT,性能优于SE

目录 1.LCT介绍 2.LCT引入到yolov5 2.1 加入common.py中&#xff1a; 2.2 加入yolo.py中&#xff1a; 2.3 yolov5s_LCT.yaml 2.4 yolov5s_LCT1.yaml 3.YOLOv5/YOLOv7魔术师专栏介绍 1.LCT介绍 论文&#xff1a; https://arxiv.org/pdf/1909.03834v2.pdf AAAI 2020 摘要&a…

最长上升子序列 (从dp---->贪心)

最长上升子序列 思路&#xff1a; 题目要求找到最长上升的子序列&#xff0c;那么这个时候&#xff0c;我们可以假以第i个为结尾&#xff0c;那么此时以i为结尾的最大上升子序列是多少。但是这个时候&#xff0c;会发现&#xff0c;从第i个为结尾往前面找的话&#xff0c;是一…

20230705点亮STC32G实验箱9.6(STC32G12K128)开发板的跑马灯LED(深入了解)

08第六集&#xff1a;LED闪烁第六集&#xff1a;LED闪烁和花式点灯上和花式点灯上.mp4 09第六集&#xff1a;LED闪烁和花式点灯下.mp4 【大文哥学习32位8051】20230704【冲哥视频】第六集的晶振时钟的学习困惑 2023/7/5 17:36 delay_ms(3000); 刷机的时候如果使用11.0592M的Fos…

Ardupilot学习笔记

参考文献 【1】https://ardupilot.org 主打的就是一个炫酷 自驾仪 Ardupilot 一套开源的自驾仪&#xff0c;集成了各种各样的代码&#xff0c;包括其他开源代码(如PX4代码)和项目、驱动等。 即&#xff1a;自驾仪即集成了整个可以实现无人载具&#xff08;如无人机&#xff…

Day_61-62 决策树

目录 Day_61-62决策树(准备工作) 一. 算法的基本概念 1. 决策树的定义 2. 如何构建决策树&#xff1f; 2.1 熵 2.2 信息增益原则 2.3 计算步骤 二. 示例演示 1. 第一次节点决策分类&#xff1a; 2. 后续节点的决策分类 3. 决策分类的结束条件 三. 代码实现 1. 主函数 2. 两个构…

Matlab把两个不同的x轴和y轴画在同一个图里

我们知道画两个y轴可以用yyaxis. 那么画两个x轴呢? 这时候可以用神奇的tiledlayout. % 创建两组数据 x1 0:0.1:40; y1 4.*cos(x1)./(x12); x2 1:0.2:20; y2 x2.^2./x2.^3;t tiledlayout(1,1); % 创建一个tiledlayout % 第一个坐标系 ax1 axes(t); % 创建坐标系, 指定t为…

Go语言MinGW的安装

Go语言MinGW的安装 相比在 Linux 平台上安装 GCC 编译环境&#xff0c;在 Windows 平台上安装 MinGW 是比较简单的&#xff0c;只需经历以下几个过 程。 1、MINGW32位安装 1、打开 [MinGW 官网] https://osdn.net/projects/mingw/&#xff0c;下载 MinGW 安装包。 点击即可…

个人对于SAR的粗浅理解

个人对于SAR的粗浅理解 有同学问我是做成像的&#xff0c;让我解释一下SAR成像&#xff0c;我思索了一下&#xff0c;决定这样简单回答&#xff1a; 首先SAR的全称为Synthetic Aperture Radar&#xff0c;即合成孔径雷达&#xff0c;本质还是一种Radar 合成孔径&#xff0c;其…

CSS 制作动态蚂蚁线

效果&#xff1a; 代码&#xff1a; <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <style type"text/css"> .line{position:relative;margin-bottom: 5px;width: 1200px;height: …

【电商API接口系列】关键词搜索商品列表,品牌监控场景

API接口允许不同应用程序之间共享数据&#xff0c;在系统之间传输、读取和更新数据。例如&#xff0c;一个电商网站可以通过API接口获取支付系统的支付状态。API接口允许开发人员使用他人开发的功能来扩展自己的应用程序。通过调用第三方API接口&#xff0c;开发人员无需重新实…

我的创作纪念日兼GPT模型简单介绍

目录 一、引言 二、收获与开端 2.1 问题&#xff1a;在创作的过程中都有哪些收获&#xff1f; 2.2 模型开端 三、日常与深入 3.1 问题&#xff1a;当前创作和你的学习是什么样的关系&#xff1f; 3.2 模型深入介绍 3.2.1 无监督预训练 3.2.2 有监督下游任务精调 四、…

自动驾驶产业链躁动,四维图新能否做好新时代“Tier 1”?

自动驾驶行业的“劲风”又来了。 6月21日&#xff0c;工信部副部长辛国斌在国务院政策例行吹风会上表示&#xff0c;将启动智能网联汽车准入和上路通行试点&#xff0c;他强调&#xff0c;“这里面讲的是L3级&#xff0c;及更高级别的自动驾驶功能商业化应用”。此前工信部曾透…