2011-08-23 48 views
1

通常,我有一種情況,即頁面上的操作導致發出ajax請求。當這些操作中的幾個堆積起來時,每個ajax請求都會進入並執行其操作(可能會更新項目列表)。這看起來很可怕。我試圖想辦法有一個請求只更新項目列表,如果沒有請求相同類型的東西當前「待定」。想法?僅顯示最近請求的ajax結果

+0

到目前爲止你有什麼代碼? – PeeHaa

回答

1

您的選擇:

  1. 保持請求列表,並檢查是否元素在列表中。如果它在列表中,則意味着請求正在發生。如果不是,您可以開始一個請求並將其添加到列表中。 Example on jsFiddle

  2. 在發出新的請求之前,中止現有的請求。這將導致最後的請求去,其他人將被丟棄,與解決方案1相反。Example on jsFiddle

+0

有趣的中止方法,就是用這個;謝謝。 – kr1zmo

0

保留請求列表。當您提交請求時,將其添加到列表中。在你的加載和錯誤函數中,從列表中刪除它。

因此,當你處理負載時,如果堆棧上沒有請求,那麼它將處理,否則它將返回null。

0
var doing_ajax = false; 
$("#action").click(function(){ 
    if (!doing_ajax){ 
     doing_ajax = true; 
     do_ajax(); 
    } 

}); 

function do_ajax(){ 
    $("#content").load('something.php', function(){ 
     doing_ajax = false; 
    }); 
}