IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> jQuery Ajax 详细通俗讲解 -> 正文阅读

[JavaScript知识库]jQuery Ajax 详细通俗讲解

jQuery Ajax

Ajax 是一种异步、无刷新(或者说局部页面刷新)技术。

  • 同步:
    • 现在的大部分请求都是基于同步,所谓同步就是说必须等待请求之后给我返回结果了我才能继续往下操作。好比你要烧水,切菜,做饭。现在是同步,你必须等水烧开再去干其他事情。
  • 异步:
    • 异步就是,请求发送之后,不管你是否返回结果,我继续往下操作。比如,你烧水的同时,不管水烧没烧开,你继续你其他的工作,去切菜。
  • 刷新:
    • 类似我们的 <a></a>标签的点击链接,以及表单元素的提交,都会刷新页面,你会感觉到你们网页闪一下,然后你之前做的操作全没了。好比你刷微博点个赞,然后整个页面刷新了,又是从头开始,或内容都变了(做个比方,不会改变)。
  • 无刷新:
    • 刷朋友圈点个赞,不会整个页面都刷新而是“赞”出现在该出现的地方

下面用的 jQuery 封装好的 Ajax

1.$.ajax

jQuery 调用 ajax 方法

格式:$.ajax({});

参数:

type:请求方式GET/POST

url: 请求地址 url

async:是否一步,默认是 true 表示异步

data:发送到服务器的数据

dataType:预期服务器返回的数据类型

contentType:设置请求头

success:请求成功时调用此函数

error:请求失败时调用此函数

敲代码练手:

先创建我们要访问的数据,暂时没有后端

在这里插入图片描述

代码:我们只写必要,常用的参数

<script src="js/jquery-3.6.0.js"></script>
<script>
    $.ajax({
        type: "get",        // 请求方式
        url: "js/data.txt", // 请求路径
        dataType: "json",   // 预期返回一个 json 类型数据
        success: function (data) {   // data是形参名,代表返回的数据
            console.log(data);
        }
    });
</script>

看浏览器控制台输出

把查询出来的数据展示在页面中,即放入到 body 标签中

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>$.ajax</title>
    </head>
    <body>
        <button id="bt">查询数据</button>
    </body>

    <script src="js/jquery-3.6.0.js"></script>
    <script>

        $('#bt').click(function () {
            $.ajax({
                type: "get",        // 请求方式
                url: "js/data.txt", // 请求路径
                dataType: "json",   // 预期返回一个 json 类型数据
                success: function (data) {   // data是形参名,代表返回的数据
                    // Dom 操作
                    // 创建 ul
                    var ul = $('<ul></ul>');
                    // 遍历 data
                    for (let i = 0; i < data.length; i++) {
                        // 创建 li
                        var li = '<li>' + data[i].userName + '</li>';
                        // 将 li 追加到 ul 中
                        ul.append(li);
                    }
                    // 将 ul 追加到 body 中
                    $("body").append(ul);
                }
            });
        });
    </script>

</html>

结果及分析:我们给 button 按钮绑定了一个点击事件,当点击时,我们就把数据设置到一个无序列表中,然后追加到 body 标签里面,就可以在页面看到数据,整体页面是没有刷新的(不会闪一下,增强了用户交互体验感)

2.$.get

这是一个简单的 GET 请求功能以取代复杂 $.ajax。

请求成功时可调用回调函数,如果需要在出错时执行函数,请使用 $.ajax

语法:

$.get("请求地址","请求参数",function(形参){
    
});

这里练习我们需要访问一个 json 格式的数据,所以把data.txt 后缀改成 json 就行data.txt ==> data.json

  1. 请求 json 文件,忽略返回值

    $.get('js/data.json');
    
  2. 请求 json 文件,传递参数,忽略返回值

    $.get('js/data.json',{name:'tom',age:100});
    
  3. 请求 json 文件,拿到返回值,请求成功后可拿到返回值

    $.get('js/data.json',function(data){
        console.log(data);
    });
    
  4. 请求 json 文件, 传递参数,拿到返回值

    $.get('js/data.json',{name:'tom',age:19},function(data){
        console.log(data);
    });
    

代码练手

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>$.get</title>
    </head>
    <body>

    </body>
    <script src="js/jquery-3.6.0.js"></script>
    <script>
        'use strict';
        $.get('js/data.json', function (data) {
            console.log(data);
        });
    </script>

</html>

可在控制台查看结果,这样写就是简化了代码,效果一样

3.$.post

语法:

$.post("请求地址","请求参数",function(形参){
    
});

$.post$.get用法一模一样,唯一的区别在于这是发送了一个 post 请求,由于现在咱们没有后端,所以暂时无法展示,post 必须是去访问一个后端服务器路径

4.$.getJSON

语法:

$.getJSON("请求地址","请求参数",function(形参){
    
});

$.getJSON$.get$.post的用法是一致的,但是区别在于,$.getJSON 只能获取 json 格式的数据,其他的无法获取,而 $.get 和 $.post都可以获取。

代码练手

我们先建一个普通的 txt 文件

test.txt 内容为:

hello world
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>$.getJSON</title>
</head>
<body>

</body>
<script src="js/jquery-3.6.0.js"></script>
<script>
    $.get('js/test.txt', function (data) {
        console.log("用 get 方法")
        console.log(data);
    });

    $.getJSON('js/test.txt', function (data) {
        console.log("用 getJSON 方法")
        console.log(data);
    })
</script>
</html>

看控制台输出:

在这里插入图片描述

可以看出来数据不是 json 格式,则无法获取

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:02:06  更:2021-08-26 12:03:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 6:56:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计