当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《使用jQuery自动刷新div-setTimeout或其他方法?》经验,为你挑选了2个好方法。

你究竟如何div使用JavaScript(特别是jQuery)进行自动刷新?

我知道这个setTimeout方法,但这真的是一个好习惯吗?有更好的方法吗?

function update() {
    $.get("response.php", function(data) {
        $("#some_div").html(data);
    });
    window.setTimeout("update();", 10000);
}

gregmac.. 41

另一个修改:

function update() {
  $.get("response.php", function(data) {
    $("#some_div").html(data);
    window.setTimeout(update, 10000);
  });
}

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

此外,如果服务器无法响应,它将不会继续尝试.

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

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);
    }
}

这会在加载时显示加载消息(将动画gif放在那里以获得典型的"web 2.0"样式).如果服务器超时(在这种情况下需要超过2秒)或发生任何其他类型的错误,则会显示错误,并在再次联系服务器之前等待60秒.

当使用大量用户进行快速更新时,这可能特别有用,在这种情况下,您不希望每个人都突然瘫痪一个滞后的服务器,而这些服务的请求几乎都是超时的.



1> gregmac..:

另一个修改:

function update() {
  $.get("response.php", function(data) {
    $("#some_div").html(data);
    window.setTimeout(update, 10000);
  });
}

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

此外,如果服务器无法响应,它将不会继续尝试.

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

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);
    }
}

这会在加载时显示加载消息(将动画gif放在那里以获得典型的"web 2.0"样式).如果服务器超时(在这种情况下需要超过2秒)或发生任何其他类型的错误,则会显示错误,并在再次联系服务器之前等待60秒.

当使用大量用户进行快速更新时,这可能特别有用,在这种情况下,您不希望每个人都突然瘫痪一个滞后的服务器,而这些服务的请求几乎都是超时的.



2> Viktor Trón..:
$(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" 
});

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有