Ajax不是每5秒检索一次数据

时间:2013-07-12 10:58:12

标签: jquery ajax

如何每5秒钟获取一次数据?由于某种原因,它无法正常工作

这是我的代码,但没有工作:

<script type="text/javascript">

        $(document).ready(function(){

            setTimeout(function() {
              $.ajax({ 
            url: 'test_api.php', 
            data: "", dataType: 'json', 
            success: function(rows) { 

                for (var i in rows) { 

                    var row = rows[i]; 

                    var availability = row[3]; 

                    var hostName = row[2];

                    var intranet = row[6];

                    var timeRespons = row[4]; 

                    $('body').append("<b>availability: </b>"+availability+"<b> hostName: </b>"+hostName+
                    "<b> intranet: </b>"+intranet+"<b> timeResponse: </b>"+timeRespons) .append("<hr />");

                    } 
                }
            });
            }, 5000);

        });

非常感谢

2 个答案:

答案 0 :(得分:2)

不使用setTimeout,而是使用setInterval

setTimeout在指定时间过后运行一次。

setInterval在指定时间连续运行,直到您使用clearInterval停止。

$(document).ready(function() {
    setInterval(function() {
        $.ajax({
        url: 'test_api.php',
        data: "", dataType: 'json',
        success: function(rows) {
            for (var i in rows) {
                var row = rows[i];
                var availability = row[3];
                var hostName = row[2];
                var intranet = row[6];
                var timeRespons = row[4];

                $('body').append("<b>availability: </b>" + availability + 
                                 "<b> hostName: </b>" + hostName +
                                 "<b> intranet: </b>" + intranet + 
                                 "<b> timeResponse: </b>"+timeRespons) 
                         .append("<hr />");

                }
            }
        });
    }, 5000);
});

答案 1 :(得分:1)

如果您想每5秒调用一次函数,请使用setIntervalsetInterval()方法调用函数或以指定的时间间隔(以毫秒为单位)计算表达式。

setTimeout()方法调用函数或在指定的毫秒数后计算表达式的位置。

更改您的代码

setInterval(function() {
  $.ajax({ 
    url: 'test_api.php', 
    data: "", dataType: 'json', 
    success: function(rows) { 
        $('body').html(''); //Clear content
        for (var i in rows) { 
            var row = rows[i]; 
            var availability = row[3]; 
            var hostName = row[2];
            var intranet = row[6];
            var timeRespons = row[4]; 
            $('body').append("<b>availability: </b>"+availability+"<b> hostName: </b>"+hostName+
            "<b> intranet: </b>"+intranet+"<b> timeResponse: </b>"+timeRespons) .append("<hr />");
            } 
        }
    });
}, 5000);

如果您要覆盖body内容,请使用$('body').html(htmlstring);

Demo