我不確定我即將問的事情是可能的還是正確的做事方式,但是在這裏。是否有可能停止當前執行的Javascript代碼?
我有一個網頁,它使用AJAX從服務器加載一些數據並以可視方式顯示它。用戶可以選擇使用頁面上的兩個按鈕之一來「滾動」按周過濾的數據。 這些按鈕的代碼是這樣的:
$("#leftButton").click(function() {
clearCurrentlyDisplayedData();
changeFilter(1); //Or -1, or whatever.
loadAndDisplayData();
}
在本(簡化的)實施例,loadAndDisplayData()將使用AJAX調用來獲取該數據,然後在完成請求顯示它,這樣的:
$.get(
"web/service/address",
function (data, textStatus, jqXHR) {
//Display the data here
});
但是,用戶單擊箭頭以快速滾動數據時出現問題。如果快速連續點擊兩次按鈕,則會顯示兩週的數據。
我不要想要禁用按鈕,直到數據被收集 - 由於數據收集和顯示確實需要一點時間,這會殺死用戶快速瀏覽網站的能力,並會很快變得刺激。
當用戶點擊其中一個按鈕以防止加載兩組數據時,是否有可能殺死當前正在執行的腳本或AJAX調用(或稱爲這些調用的函數)?有什麼其他方式可以解決這個問題嗎?
這兩個優秀的建議 - 謝謝! – nitsua 2012-07-09 14:31:49