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

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

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

function update() {

$.get("response.php", function(data) {

$("#some_div").html(data);

});

window.setTimeout("update();", 10000);

}

回答:

另一个修改:

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秒,然后再次联系服务器。

在与大量用户进行快速更新时,这尤其有用,因为您不希望每个人都突然使请求始终超时的落后服务器瘫痪。

以上是 使用jQuery自动刷新div-setTimeout或其他方法? 的全部内容, 来源链接: utcz.com/qa/421144.html

回到顶部