使用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