Jquery Ajax只能工作一次

时间:2015-08-07 14:11:59

标签: javascript jquery html ajax

我有一个页面正在重新加载div中的数据,我使用jquery来更新div,但它只触发一次。

我的页面如下:

<html><head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
</head><body>
<div id="messages" style="width:100%;font-size:120%;">
  <?php echo $tbl; ?>
</div>
<script type="text/javascript">
$(document).ready (function () {
    var updater = setTimeout (function () {
        $('div#messages').load ('new_hud.php?update=true');
    }, 2000);
});
</script>
</body></html>

我希望脚本每2秒加载一次数据。它会在前2秒后重新加载数据,但之后再也不会重新加载。我在这里缺少什么?

4 个答案:

答案 0 :(得分:2)

setTimeout替换为setInterval,如此

var updater = setInterval(function () {
    $('div#messages').load ('new_hud.php?update=true');
}, 2000);

答案 1 :(得分:1)

您需要使用setInterval而不是setTimeout。

setTimeout将在指定的延迟后触发一次。

setInterval将以指定的间隔重复触发。

$(document).ready(function () {
    var updater = setInterval(function () {
        $('div#messages').load('new_hud.php?update=true');
    }, 2000);
});

答案 2 :(得分:0)

您正在使用setTimeout()并希望使用setInterval()

var updater = setInterval (function () {

答案 3 :(得分:0)

setTimeout函数本身不会每2秒循环一次脚本,所以你的代码正在做的事情基本上是在页面准备好加载数据之后等待2,这就是它。

将setTimeout包装在'for'或'while'周期中以加载您想要的次数。

希望它有用:)