2012-04-14 49 views
0

我正在使用jQuery將表單中的數據提交給我的控制器文件。如何在Ajax中防止過於頻繁的請求

這是一個最喜歡的片斷添加到數據庫,但是,如何防止用戶發送數據導致ajax腳本太頻繁?

我的意思是,我可以在我的表單上點擊提交按鈕數千次 - 如何防止?因此,例如,每10秒一次請求?

+0

你將不得不阻止該文件中被調用,因爲什麼AJAX這只是一個簡單的請求,您也可以通過在地址欄中輸入URL來調用該請求。您可以在被調用的文件中進行簡單的IP或cookie檢查。 – 2012-04-14 15:46:20

+0

您可以在點擊按鈕時禁用按鈕,並且當您收到AJAX響應時,添加延遲迴調函數以重新啓用它。 – Andy 2012-04-14 15:49:43

+0

@Andy你可以發表一個它應該是什麼樣子的例子嗎? – Lucas 2012-04-14 15:50:09

回答

0

剛剛送走我的頭頂,我想說的是這樣的:

$("#button_id").one('click', DoSomething); // attaches the function for ONE click 

function DoSomething() { 
    $.post("test.php", function(data) { 
     alert("Data Loaded: " + data); 
     $("#button_id").delay(10000).one('click', DoSomething); // reattach the listener 
    });   
} 

資料來源this question複製和jQuery manual