(我真的不知道該怎麼這個題目,隨意提出修改建議並)jQuery的 - 停止Ajax請求
考慮下面的示例HTML:
<div class="grid">
<div class="item"><span class="icon"></span></div>
<div class="item"><span class="icon"></span></div>
<div class="item"><span class="icon"></span></div>
<div class="item"><span class="icon"></span></div>
<div class="item"><span class="icon"></span></div>
</div>
附加到每個.icon
一些jQuery的:
<script type="text/javascript">
jQuery('.icon').click(function(){
runAjaxStuff();
displayNewContent();
})
</script>
概括地說,每個用戶點擊.icon
時間,相應的親本.item
將執行由d AJAX請求和完成在頁面上顯示額外的.item
內容。
如果用戶在這種情況下要連續快速單擊.item
中的每一個,則來自前一次點擊的AJAX請求可能仍在等待響應。當然,新內容也沒有顯示出來;然而,秒,所有的請求少數有機會完成之後,用戶然後用噸新內容的狂轟濫炸所顯示的一次。
我所追求的是一種簡單地停止執行任何以前的click
綁定的方法,如果點擊一個.icon
,以便只有最近的點擊最終完成。
我知道,我可以讓我的AJAX調用syncronous代替,但我希望不會抓住用戶的瀏覽器更好的辦法。我jQuery是足夠好度日,但是這是值得更深入一點比我已經習慣了。
+1因爲預防永遠是最好的方式。但是,如果OP寧願放棄以前的AJAX調用 - 因爲他的指定執行最近的點擊 - 他可能要對此進行確認:HTTP://計算器。com/a/446626/2600397 –
我絕對更喜歡停止/放棄,只是因爲不是限制用戶,而是讓用戶做他想做的事情並對其進行處理。 –
請記住,不是簡單的AJAX停止,但可能還有動畫(在'displayNewContent'內部)。是否需要分別明確停止? – pspahn