我遇到了一个我似乎无法解决的问题。防止堆叠AJAX请求
我目前正在实现一个类似于Twitter使用的AJAX函数 - 可以在滚动上获取新帖子。
jQuery的看起来是这样的:
$(window).scroll(function(){
if($(window).scrollTop() == $(document).height() - $(window).height()){
$('div#ajaxloader').show();
$.ajax({
url: "loader.php?lastid=" + $(".container:last").attr("id"),
success: function(html){
if(html){
$("#main").append(html);
$('div#ajaxloader').hide();
}else{
$('div#ajaxloader').html('No more posts to show.');
}
}
});
}
});
现在的问题;如果用户的滚动速度非常快,并且数据库正在快速运行,那么jQuery似乎不能够以足够快的速度发送正确的ID作为查询,这会导致双重帖子。
任何人都有一个好主意,如何防止这种情况?
你也可以把runningRequest--;进入ajax请求的完整部分:而不是成功和错误部分。 – ITroubs 2011-04-01 12:05:19
这个伎俩!非常聪明 - 而且很简单=)谢谢你一堆! – Marcus 2011-04-01 12:08:00
我正在写这个确切的信号量回答¬¬ – Coquevas 2011-04-01 12:09:56