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