首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery - setTimeout或其他方法自动刷新div?

使用jQuery - setTimeout或其他方法自动刷新div?
EN

Stack Overflow用户
提问于 2008-10-21 04:32:04
回答 4查看 125.2K关注 0票数 17

如何使用JavaScript (具体地说,是jQuery)创建自动刷新div

我知道setTimeout方法,但它真的是一个好的实践吗?有没有更好的方法?

代码语言:javascript
复制
function update() {
    $.get("response.php", function(data) {
        $("#some_div").html(data);
    });
    window.setTimeout("update();", 10000);
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-21 04:54:36

另一个修改:

代码语言:javascript
复制
function update() {
  $.get("response.php", function(data) {
    $("#some_div").html(data);
    window.setTimeout(update, 10000);
  });
}

这样做的不同之处在于,它在ajax调用为1之后等待10秒。所以两次刷新之间的时间实际上是10秒+ ajax调用的长度。这样做的好处是,如果您的服务器响应时间超过10秒,就不会同时发生两个(最终是许多) AJAX调用。

此外,如果服务器没有响应,它也不会继续尝试。

我在过去使用过类似的方法,使用.ajax处理更复杂的行为:

代码语言:javascript
复制
function update() {
  $("#notice_div").html('Loading..'); 
  $.ajax({
    type: 'GET',
    url: 'response.php',
    timeout: 2000,
    success: function(data) {
      $("#some_div").html(data);
      $("#notice_div").html(''); 
      window.setTimeout(update, 10000);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
      $("#notice_div").html('Timeout contacting server..');
      window.setTimeout(update, 60000);
    }
}

这将在加载时显示一条加载消息(在其中放置一个典型的“web2.0”样式的动画gif )。如果服务器超时(在本例中超过2秒)或发生任何其他类型的错误,它会显示一个错误,并等待60秒,然后再次与服务器联系。

在对大量用户进行快速更新时,这可能特别有用,因为您不希望每个人都用无论如何都只是超时的请求突然使滞后的服务器瘫痪。

票数 42
EN

Stack Overflow用户

发布于 2012-02-13 22:00:56

代码语言:javascript
复制
$(document).ready(function() {
  $.ajaxSetup({ cache: false }); // This part addresses an IE bug.  without it, IE will only load the first number and will never refresh
  setInterval(function() {
    $('#notice_div').load('response.php');
  }, 3000); // the "3000" 
});
票数 9
EN

Stack Overflow用户

发布于 2008-10-21 04:37:22

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/220767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档