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