Ajax获取数据然后显示在页面的实现方法

实现Ajax获取数据并在页面中显示需要以下步骤:

1.发起Ajax请求

在客户端发起Ajax请求,使用XMLHttpRequest对象:

var xhr = new XMLHttpRequest();
xhr.open('GET', '/api/data', true);
xhr.send(null);

其中 open() 方法接收三个参数:请求的类型、请求的URL、请求是否异步处理。如果是异步处理,则需要在请求发起后指定回调函数来接收服务器响应的数据。

2.处理服务器响应

在客户端异步接收服务器响应,通过回调函数来进行处理:

xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
             // 数据已经成功返回,处理响应数据
             var data = xhr.responseText;
             // 处理数据
             processData(data);
        } else {
            alert('请求出错,错误码:' + xhr.status);
        }
    }
};

function processData(data) {
    // 处理数据的代码
}

回调函数 onreadystatechange 会在每次 readyState 值改变时被调用。readyState 属性表示请求/响应过程的当前活动阶段。readyState = 4 表示所有数据已经接收完毕,而 status 属性则表示服务器响应的 HTTP 状态码。

3.渲染数据到页面

一旦服务器响应返回并成功处理数据,将得到数据的变量传入渲染函数,使用DOM操作将数据渲染到页面中。

function processData(data) {
    var dataList = JSON.parse(data);
    var html = '';
    for (var i = 0; i < dataList.length; i++) {
        html += '<li>' + dataList[i] + '</li>';
    }
    document.getElementById('dataList').innerHTML = html;
}

在这个示例中,我们先将从服务器返回的JSON数据解析为JavaScript对象,然后通过循环遍历每个数据对象,并将它们渲染为HTML列表,在最后使用 innerHTML 方法,将渲染好的HTML代码片段全部插入到页面相对应的位置中。

示例1:

以下代码展示了一个包含AJAX获取GitHubAPI数据的简单代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>AJAX 获取 GitHub 用户信息</title>
</head>
<body>
    <div>
        <label>GitHub用户名:</label>
        <input id="gh-username" type="text">
        <button id="gh-userbtn">获取信息</button>
    </div>
    <div id="gh-data"></div>
    <script>
    var getUserInfo = function(username) {
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'https://api.github.com/users/' + username, true);
        xhr.send(null);

        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
                var userInfo = JSON.parse(xhr.responseText);
                console.log(userInfo);
                document.getElementById('gh-data').innerHTML = `
                    <div>
                        <h2>${userInfo.login}</h2>
                        <img width="100" height="100" src="${userInfo.avatar_url}">
                        <p>${userInfo.bio || '暂无介绍'}</p>
                        <p>公司:${userInfo.company || '暂无公司'}</p>
                        <p>地址:${userInfo.location || '未知'}</p>
                    </div>
                `
            }
        };
    };

    document.getElementById('gh-userbtn').addEventListener('click', function() {
        var username = document.getElementById('gh-username').value;
        getUserInfo(username);
    });
    </script>
</body>
</html>

在这个示例中,我们使用 XMLHttpRequest 对象发起 GET 请求到GitHub API,获取对应 username 用户的信息,并将获取的数据渲染到页面中。

示例2:

以下代码展示了一个包含 AJAX 获取天气预报信息的简单代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>AJAX 获取天气预报</title>
</head>
<body>
    <h2>天气预报</h2>
    <button id="getWeatherBtn">获取天气预报</button>

    <table border="1" style="margin-top: 20px;">
        <tr><th>城市</th><th>天气</th></tr>
        <tbody id="weatherList"></tbody>
    </table>

    <script>
        var getWeatherInfo = function() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'http://wthrcdn.etouch.cn/weather_mini?city=广州', true);
            xhr.send(null);

            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var weatherData = JSON.parse(xhr.responseText).data.forecast;
                    var html = '';
                    for (var i = 0; i < weatherData.length; i++) {
                        html += `
                            <tr>
                                <td>${weatherData[i].date}</td>
                                <td>${weatherData[i].type}</td>
                            </tr>
                        `;
                    }
                    document.getElementById('weatherList').innerHTML = html;
                }
            };
        };

        document.getElementById('getWeatherBtn').addEventListener('click', function() {
            getWeatherInfo();
        });
    </script>
</body>
</html>

在这个示例中,我们使用 XMLHttpRequest 对象发起 GET 请求到 http://wthrcdn.etouch.cn/weather_mini 接口,通过接口的 city 参数来实现不同城市天气的查询,最终将获取的数据渲染到页面中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ajax获取数据然后显示在页面的实现方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQWidgets jqxPivotGrid multipleSelectionEnabled属性

    以下是关于 jQWidgets jqxPivotGrid 组件中 multipleSelectionEnabled 属性的详细攻略。 jQWidgets jqxPivotGrid multipleSelectionEnabled 属性 jQWidgets jqxPivotGrid 组件 multipleSelectionEnabled 属性用于启用或禁用数据…

    jquery 2023年5月12日
    00
  • jQuery简单实现列表隐藏和显示效果示例

    下面是“jQuery简单实现列表隐藏和显示效果示例”的完整攻略: 1. 准备工作 在实现列表隐藏和显示效果之前,我们需要准备好以下三个文件: HTML文件:需要有列表元素。以下为示例代码: “`html 列表项1 列表项2 列表项3 列表项4 “` jQuery文件:需要用到jQuery库来实现。可以从官网下载jQuery文件或者通过CDN引入,以下为示…

    jquery 2023年5月28日
    00
  • js中parseFloat(参数1,参数2)定义和用法及注意事项

    js中parseFloat(参数1,参数2)定义和用法及注意事项 定义和用法 parseFloat 是 JavaScript 的一个全局函数,用于将字符串解析为浮点数。它接收一个字符串类型的参数,将其解析并返回对应的浮点数。 在解析过程中,parseFloat 会忽略参数字符串中前导的空白符(空格、制表符、换行符),直到找到第一个非空白符。当遇到数字字符、小…

    jquery 2023年5月27日
    00
  • jQuery 如何将一个div的内容复制到另一个div中

    要将一个div的内容复制到另一个div中,可以使用jQuery的.html()方法或.clone()方法。以下是详细的攻略: HTML结构 首先,需要在HTML中创建两个div,一个作为源div,一个作为目标div。以下是一个示例: <div id="source">This is the source div.</di…

    jquery 2023年5月9日
    00
  • 如何使用jQuery Mobile BootstrapTheme插件为手机设计表单控件

    下面是关于如何使用jQuery Mobile BootstrapTheme插件为手机设计表单控件的完整攻略: 步骤一:下载并引入jQuery Mobile和Bootstrap 首先需要下载jQuery Mobile和Bootstrap,并将其引入到你的HTML文档中(可以通过CDN直接引入),示例代码如下: <!DOCTYPE html> &lt…

    jquery 2023年5月12日
    00
  • jQuery+ajax中getJSON() 用法实例

    下面是一份关于“jQuery+ajax中getJSON() 用法实例”的完整攻略。 什么是jQuery getJSON()方法? jQuery.getJSON()是用于发送GET请求并从服务器获取数据的函数。在获取数据后,它使用JSON.parse()解析JSON响应。 函数语法如下: $.getJSON( url [ , data ] [ , succes…

    jquery 2023年5月27日
    00
  • jQWidgets jqxQRcode lineColor属性

    以下是关于 jQWidgets jqxQRcode 组件中 lineColor 属性的详细攻略。 jQWidgets jqxQRcode lineColor 属性 jQWidgets jqxQRcode 组件的 lineColor 属性用于设置二维码中线条的颜色。 语法 // 设置二维码中线条的颜色 $(‘#qrcode’).jqxQRCode({ line…

    jquery 2023年5月12日
    00
  • jQuery实现本地存储

    下面是详细的讲解: 什么是本地存储? 在Web开发中,常常需要将一些数据保存在客户端内,这些数据可能会被多个页面使用,而不仅仅是一个页面。在这种情况下,使用Cookie虽然可以达成目的,但是Cookie有些缺陷,比如只能存储4K左右的数据,不能存储对象等等。于是,在HTML5中新增了Web Storage API,解决了上述问题,让我们可以方便地在浏览器本地…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部