我遇到了一個我似乎無法解決的問題。防止堆疊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