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日

相关文章

  • jQuery移动页面类选项

    jQuery Mobile是jQuery团队为移动设备打造的一款专用开发框架。它几乎涵盖了绝大多数移动页面开发所需的元素和交互功能,其中就包含了很多与页面类有关的选项。下面我们来详细解析一下这些选项: data-role属性 data-role属性是jQuery Mobile中最重要的属性之一,它用来定义元素在页面中扮演的角色。比如我们经常使用的<di…

    jquery 2023年5月12日
    00
  • jQuery编写网页版2048小游戏

    下面是“jQuery编写网页版2048小游戏”的完整攻略: 一、前置知识 HTML基础知识(文档结构、标签等) CSS基础知识(样式、布局等) JavaScript基础知识(语法、DOM操作等) jQuery基础知识(语法、选择器、事件处理等) 二、制作游戏界面 首先在HTML文档中添加游戏界面的基本结构,包括游戏面板、得分板、重新开始按钮等元素。 使用CS…

    jquery 2023年5月28日
    00
  • 用AJAX返回HTML片段中的JavaScript脚本

    当在网页中使用Ajax技术返回HTML片段时,如果这个HTML片段中含有JavaScript脚本,会出现一些问题:脚本可能不会执行,或者执行了但无法扮演其预期的角色。为了解决这个问题,可以采取以下策略: 将JavaScript从HTML片段中分离出来,放在页面的 head 区或者外部js文件中。 在Ajax请求返回的HTML片段中,如果包含用户需要的Java…

    jquery 2023年5月28日
    00
  • jQuery UI Sortable dropOnEmpty选项

    jQuery UI Sortable dropOnEmpty选项详解 jQuery UI Sortable是一个排序插件,它允许用户通过拖动元素来重新排序。在本文中,我们将详细介绍Sortable dropOnEmpty选项的用法和示例。 dropOnEmpty选项 dropOnEmpty选项是Sortable插件的一个选项,它用于指定当列表为空时,是否允许…

    jquery 2023年5月11日
    00
  • jQWidgets jqxTagCloud destroy()方法

    下面是关于jQWidgets jqxTagCloud destroy()方法的详细讲解。 方法说明 destroy()方法是jQWidgets jqxTagCloud组件提供的一个方法,可以用于销毁jqxTagCloud。当不再需要该组件时,调用该方法将释放资源并清理占用的内存。此外,销毁该组件还可以有效防止内存泄漏。 方法语法 方法语法如下: $(‘#jq…

    jquery 2023年5月12日
    00
  • jQuery+CSS3实现点赞功能

    下面我会详细讲解如何使用jQuery和CSS3实现点赞功能: 1. 前置知识 HTML基础知识 CSS3基础知识 jQuery基础知识 2. 实现点赞功能的HTML代码 <div class="like"> <button class="like-btn"></button> &lt…

    jquery 2023年5月28日
    00
  • 如何使用jQuery Mobile创建迷你标签隐藏式翻转开关

    下面我将详细讲解如何使用 jQuery Mobile 创建迷你标签隐藏式翻转开关,并提供两个示例说明。 步骤 1. 创建基本结构 首先,我们需要创建基本的 HTML 结构,包括一个用于包裹开关的容器和两个用于标识开关状态的标签。代码如下: <div data-role="fieldcontain"> <label for…

    jquery 2023年5月12日
    00
  • jQWidgets jqxCalendar setMaxDate属性

    jQWidgets 的 jqxCalendar 组件提供了 setMaxDate() 方法,用于设置日历的最大日期。本文将详细介绍 setMaxDate() 方法的使用方法,包括方法概述、示例以及注意事项。 setMaxDate() 方法概述 setMaxDate() 方法用于设置日历的最大日期。可以将 setMaxDate() 方法设置为一个日期对象,以设…

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