Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery自动刷新div_Jquery - Fatal编程技术网

使用jQuery自动刷新div

使用jQuery自动刷新div,jquery,Jquery,我需要自动刷新一个特定的div,我尝试了下面的代码,但是它向服务器发出了很多请求,而不是每5秒一次 <script type="text/javascript"> $(document).ready(function() { refresh(); }); function refresh() { $.get('site', function(result) {

我需要自动刷新一个特定的div,我尝试了下面的代码,但是它向服务器发出了很多请求,而不是每5秒一次

<script type="text/javascript">
        $(document).ready(function() {
            refresh();
        });

        function refresh() {
            $.get('site', function(result) {
                $('#div').html(result);
            });
            setTimeout('refresh()', 5000);
        }

    </script>

$(文档).ready(函数(){
刷新();
});
函数刷新(){
$.get('site',函数(result){
$('#div').html(结果);
});
setTimeout('refresh()',5000);
}

如果希望每5秒调用一次函数,请改用
setInterval

$(document).ready(function () {
    var interval = setInterval(refresh, 5000);
});

function refresh() {
    $.get('site', function (result) {
        $('#div').html(result);
    });    
}
另外,使用
清除间隔(interval)
清除间隔


注意:无论
.get()
请求是否已返回,任何具有这种情况的interval/timeout/recursive函数都将启动。

使用字符串是有效的,并且确实有效,因此这可能不是问题所在,甚至不应该这样做,因为它在内部计算字符串。您应该使用setInterval而不是timeout,并且应该在刷新函数本身之外,因为它在运行函数fyi的无限循环中下降,超时应该在回调内部,否则递归函数就没有真正意义了。通常,当您在ajax调用中使用递归函数时,这就是您想要的,在ajax调用完成时调用超时,以便即使在考虑ajax调用所需的时间时也能获得一致的时间,这就是为什么您通常不应该在ajax中使用间隔。为了不在失败时停止,只需将超时放在
始终
回调中即可。@adeneo,我现在明白你的意思了,谢谢。