另一个修改:
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秒,然后再次联系服务器。
在与大量用户进行快速更新时,这尤其有用,因为您不希望每个人都突然使请求始终超时的落后服务器瘫痪。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)