使用Ajax异步加载请求JSON数据

这篇博客详细介绍了如何通过Ajax技术实现异步加载JSON数据。内容包括HTML页面设置、JSON数据源(demo.json)、JavaScript辅助函数如addLoadEvent.js、getHttpObject.js和getNewContent.js的实现,以及最终的运行结果展示。通过这些步骤,读者可以学习到如何在不刷新页面的情况下获取并更新服务器数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html

<!DOCTYPE html>
<html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script src="addLoadEvent.js"></script>
        <script src="getHttpObject.js"></script>
        <script src="getNewContent.js"></script>
    </head>
    <body>
    </body>
</html>

demo.json

[
  {
    "name":"Lee",
    "age":28,
    "height":188
  },
  {
    "name":"Sun",
    "age":30,
    "height":190
  }
]

addLoadEvent.js

function addLoadEvent(fun){
    var oldLoad = window.onload;
    if(typeof  oldLoad != "function"){
        window.onload = fun;
    }else{
        window.onload = function(){
            oldLoad();
            fun();
        }
    }
}

getHttpObject.js

/*建立XMLHttpRequest对象的兼容方法*/
function getHttpObject(){
    if(window.XMLHttpRequest){
        return new XMLHttpRequest();
    }else if(window.ActiveXObject){
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
}

getNewContent.js

function getNewContent(){
    /*建立一个新的getHttpObject对象*/
    var XHR = getHttpObject();
    if(XHR){
    XHR.onreadystatechange = function(){
    if(XHR.readyState == 4 && XHR.status == 200){
        var txt = JSON.parse(XHR.responseText);
        var result = [];
        /*动态添加DOM*/
        var body = document.getElementsByTagName("body")[0];
        var content = document.createElement("p");
        body.appendChild(content);
        /*遍历输出*/
        for(var i=0;i<txt.length;i++){
            result["name"] = txt[i].name;
            result["age"] = txt[i].age;
            result["height"] = txt[i].height;
            content.innerHTML += "姓名:"+result["name"]+"&nbsp;&nbsp;年龄:" + result["age"] +"&nbsp;&nbsp;身高:"+ result["height"]+"<br/>";
            }
        }
    };
    /*异步请求触发后,脚本会继续执行,不会等待它响应*/
    XHR.open('Get','demo.json?id='+Math.random(),true);
    XHR.send(null);
    }
}
addLoadEvent(getNewContent);

运行结果

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值