2017-06-01 72 views
-1

我在html中實現了一個嚮導,顯示一系列面板。有一個Next按鈕來導航到後面的面板和一個Finish按鈕。當選擇下一個按鈕時,我有一個點擊處理程序執行一些數據的ajax帖子來保存表單。我也用Finish按鈕來做到這一點。jQuery - 防止Ajax POST每10秒發生一次以上

用戶快速按下「下一步」按鈕3-6次並不少見。如果表單中沒有數據更改,我寧願不排隊等待幾個帖子。我的想法是,我只會每10秒執行一次該職位。有沒有辦法告訴jQuery來做到這一點?

+0

設置一個變量來保持被點擊時的跟蹤時間,那麼你的函數調用AJAX的內部,檢查是否最後的點擊少於10秒前。 – nurdyguy

+0

當你點擊下一步時,它會顯示成功ajax後的下一個面板嗎?只需禁用表單輸入和下一個按鈕,直到您顯示下一個面板。這會使用戶清楚發生了某些事情。如果用戶多次點擊,這表示用戶不知道正在發生的事情或者認爲已經損壞。 –

+0

否 - 將顯示下一個面板,並且異步調度Ajax請求 – Corez

回答

0

只需創建一個圍繞jQuery的AJAX調用自己的包裝是這樣的:

var lastPostCall = 0; 

function ajaxWrapper(url, data, ...) { 
    if(Date.now()-lastPostCall > 10000) { 
     lastPostCall = Date.now(); 
     // Do the real ajax call 
    } 
}