jQuery 每隔5秒钟发送一个ajax请求 请求后台数据接口

1、我们会用到:window.οnlοad=function(){} ,一个页面貌似只能用一次,可以自己去试试:

2、html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据交互</title>
    <script src="__JS__/jquery.min.js"></script>
</head>
<body>
    <table id='table-test'>
        <tr>
            <th>期数</th>
            <th>code码</th>
            <th>和值</th>
        </tr>
    </table>
</body>
<script>
    //假设每隔5秒发送一次请求
    window.onload = function () {
        getApi();
    }
    function getApi() {
        //设置时间 5-秒  1000-毫秒  这里设置你自己想要的时间 
        setTimeout(getApi,5*1000);
        $.ajax({
            url: 'http://www.andy.com/xxx',
            type: 'get',
            dataType: 'json',
            success: function (data) {
                //方法中传入的参数data为后台获取的数据
                // console.log(data.data);
                var data1 = data['data']['history'];
                // console.log(data1);
                var tr;
                $.each(data1,function (index,item) {
                    //字符串转数组
                    var code = item['code'].split(',');
                    //数组转字符串:
                    var strCode = code.join(' ');
                    // console.log(strCode)
                    tr = '<td>'+item['issue']+'</td>'+'<td>'+strCode+'</td>'+'<td>'+item['sum']+'</td>';
                    $('#table-test').append('<tr>'+tr+'</tr>')
                })
            }
        })
    }
</script>
</html>

3、效果图:依次每隔5秒请求一次

图一:注意看server_time

图二:还是注意看server_time

两次时间相减 = 5秒!也就是说5秒钟请求了一次接口!

4、但是不做判断的话,循环出来的值就跳入死循环了,之前这么写是为了展示效果,下面才是如果接口发过来的code=2,才每隔5秒请求一次,直到请求到最新数据,code=1,才停止请求!修改一下方法,代码如下:

function getApi() {
    $.ajax({
        url: 'http://www.andy.com/xxx',
        type: 'get',
        dataType: 'json',
        success: function (data) {
            //方法中传入的参数data为后台获取的数据
            // console.log(data.msg);
            if(data.code == 1){
                var data1 = data['data']['history'];
                // console.log(data1);
                var tr;
                $.each(data1,function (index,item) {
                    //字符串转数组
                    var code = item['code'].split(',');
                    //数组转字符串:
                    var strCode = code.join(' ');
                    // console.log(strCode)
                    tr = '<td>'+item['issue']+'</td>'+'<td>'+strCode+'</td>'+'<td>'+item['sum']+'</td>';
                    $('#table-test').append('<tr>'+tr+'</tr>');
                })
            }else {
                //设置请求api接口时间
                setTimeout(getApi,5*1000);
            }
        }
    })
}

 

  • 9
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值