一起来学javascript-AJAX

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    <button id="fetchDataBtn">获取数据</button>

    <div id="result"></div>

</body>

</html>

<script>

    // 在学习AJAX之前,我们先了解几个概念:

    // 1. 同步和异步:

    // 在计算机科学中,同步和异步是两个概念,它们分别表示程序执行顺序和执行速度。

    // 同步是指程序执行顺序是固定的,即程序执行顺序与代码的顺序一致。

    // 异步是指程序执行顺序不是固定的,即程序执行顺序与代码的顺序不一致。

    // 2.异步操作和同步操作

    // 异步操作指的是在编程中,某个任务不会阻塞代码的继续执行,而是允许程序在等待该任务完成的同时继续处理其他任务。

    // 这对于提高应用程序的响应性和性能至关重要,尤其是在涉及I/O操作(如文件读写、网络请求)的场景下,这些操作可能需要较长时间才能完成,如果同步执行会阻塞主线程。

    // 在JavaScript中,异步操作尤为重要,因为JavaScript运行在浏览器环境中是单线程的,这意味着同一时间只能执行一个任务。为了不阻塞用户界面的更新和其他任务的执行,

    // JavaScript采用了事件循环和回调函数、Promise、async/

    // 同步操作是指程序按照代码书写的顺序依次执行,每条语句或指令必须等待前一条语句执行完毕后才能开始执行。在同步操作过程中,程序的执行是线性的,后面的代码必须等待前面的代码执行完成,

    // 特别是对于那些需要等待资源(如文件、数据库或网络响应)的操作,会形成阻塞状态,直到所需资源准备就绪或操作完成。

    //AJAX,全称为Asynchronous JavaScript and XML(异步JavaScript和XML),是一种网页开发技术,允许在无需重新加载整个网页的情况下,通过JavaScript异步地从服务器获取数据并更新部分网页内容。

    // 这一技术提高了用户体验,因为页面交互更加快速流畅。

    // AJAX的核心是XMLHttpRequest对象,这个对象可以向服务器发送请求并接收响应,所有操作都可在不干扰用户界面的情况下后台进行。尽管名字中包含XML,但实际上AJAX可以传输任何形式的数据,包括JSON、HTML片段等,

    // XML只是最初常用的数据格式之一。

    // AJAX的工作流程通常包括以下几个步骤:

    // 1.创建XMLHttpRequest对象。

    // 在 AJAX 中,XMLHttpRequest 对象是用来与服务器进行数据交换的。其创建如下所示:

    // var httpRequest = new XMLHttpRequest();

    // 2.向服务器发送请求

    // 在步骤一中我们已经创建了用于服务器交换数据的 XMLHttpRequest 对象,要向服务器发送请求,

    // 我们需要调用该对象中的 open 和 send 方法。其使用如下:

    // 规定发送请求的一些要求

    // httpRequest.open("method", "url", async);

    // // 将请求发送到服务器

    // httpRequest.send();

    // method 是请求的类型,常见的有 GET 和 POST。

    // url 是请求的地址。

    // async 是设置同步或者异步请求,其值为布尔类型,当为 true 时,使用异步请求;当为 false 时,使用同步请求,默认为 true。

    // 使用XMLHttpRequest对象的open()方法初始化请求,设置请求类型(GET、POST等)、请求的URL及是否异步执行。

    // 设置请求完成后的回调函数,通常是在onreadystatechange事件中,当readyState变为4(请求完成)且status为200(成功)时执行。

    // 发送请求,通过send()方法,如果是POST请求还需提供请求体。

    // 在回调函数中处理服务器返回的数据,更新DOM以改变网页的部分内容。

    // 由于AJAX的重要性,现代的JavaScript库如jQuery、axios等都提供了更简洁的API来封装XMLHttpRequest的功能,让 AJAX 的使用变得更加简单。

    document.addEventListener('DOMContentLoaded', function () {

        // 'DOMContentLoaded'是一个事件名称,表示DOM内容加载完成的事件。

        // 获取按钮和展示结果的元素

        var btn = document.getElementById('fetchDataBtn');

        var resultDiv = document.getElementById('result');

        // 为按钮添加点击事件监听器

        btn.addEventListener('click', function () {

            // 创建XMLHttpRequest对象

            var xhr = new XMLHttpRequest();

            // 配置发送请求的一些请求

            xhr.open('GET', '/api/data', true); // 假设/api/data是你的数据接口  

            // 发送请求

            xhr.send();

            // 设置请求完成后的回调函数

            xhr.onload = function () {

                // xhr.onload 是一个 XMLHttpRequest (xhr) 对象的事件处理器属性

                console.log(xhr.readyState);

                console.log(xhr.status);

                if (xhr.readyState == 4 && xhr.status == 300) {

                    // readyState 是 XMLHttpRequest (xhr) 对象中的一个属性,用于表示当前请求的状态。

                    // 它的取值有以下几种:

                    // 0 代表未初始化请求。

                    // 1 代表已与服务器建立连接。

                    // 2 代表请求被接受。

                    // 3 代表请求中。

                    // 4 代表请求完成。

                    // xhr.status 是 XMLHttpRequest (xhr) 对象的属性,用于获取HTTP响应的状态码。

                    // HTTP状态码是服务器对浏览器请求的响应状态的一种标准表示方式,用三位数字表示。

                    // 请求成功,处理响应数据

                    var data = JSON.parse(xhr.responseText);

                    // xhr.responseText:这是XMLHttpRequest对象的一个属性,用于获取服务器响应的文本内容。当你发送一个Ajax请求到服务器,服务器返回的数据(如果内容类型是text/plain或text/html时,这个属性会返回服务器返回的文本内容)

                    // JSON.parse() 方法用于解析 JSON 字符串,并将结果转换为 JavaScript 对象。

                    resultDiv.innerHTML = "接收到的数据: " + data.someProperty; // 假设data是一个对象,someProperty是其属性

                    // 在这里data.someProperty,表示获取这个属性的值

                } else {

                    // 请求失败,显示错误信息

                    resultDiv.innerHTML = '请求失败,状态码:' + xhr.status;

                }

            };

            // 设置请求错误的回调函数

            xhr.onerror = function () {

                resultDiv.innerHTML = '网络错误,请求未完成';

            };


 

        });

    });

    // AJAX的作用主要包括以下几点:

    // 提升用户体验:通过异步数据交互,AJAX使得网页能够在不刷新整个页面的情况下动态更新部分内容,从而让用户感受到更快的响应速度和更流畅的浏览体验。

    // 局部刷新:只更新需要变化的部分页面内容,而不是重新加载整个页面,这大大减少了网络流量的消耗和等待时间。

    // 后台通信:在后台与服务器交换数据,用户可以在等待服务器响应的同时继续与网页的其他部分进行交互,提高了应用的交互性和响应性。

    // 减少带宽占用:因为只传输需要的数据,而不是整个页面,所以能有效减少数据传输量,节省带宽资源。

    // 增强网页功能:使得网页能够实现更复杂的交互功能,如实时搜索建议、动态加载更多内容、在线表单验证等,而无需用户手动刷新页面。

    // 跨平台兼容:AJAX基于Web标准技术(如JavaScript、XML、HTML和CSS),因此在支持这些技术的浏览器上都能良好运行,增强了应用的可移植性和跨平台能力。

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值