如何防止使用者重複提交
在我們的應用系統中,禁止使用者做出多次提交的操作是非常有必要的,比如在B2C這樣的系統裡,假如某頁面有個去銀行結算的提交按鈕,可能因為系統或網路延遲,當用戶點選提交後,返回給使用者的依舊是未付款或等待付款的資訊,那麼我們的使用者很可能就會再次去點選那個支付的提交按鈕,最終導致系統出現異常或需要把第二次的付款退還給使用者,這樣的話,不僅給使用者,也給我們自己帶來了麻煩。那麼有沒有辦法讓使用者只提交一次呢?
其實,我們可以從兩方面入手來解決這個問題。比較安全一點的做法就是在後臺進行操作,也就是說,當用戶進行二次提交的時候,我們可以在後臺進行判斷,判斷它是否是首次提交。具體的實現技術可以參考其它相關資料,接下來要講的是第二種方法,我們可以從按鈕本身入手,通過Javascript技術來實現這一需求,也就是提交之前在前臺做相關的處理工作。這裡給大家提供了三種思路,僅供參考。
第一種,當用戶點選提交按鈕後,我們可以把該按鈕立即置為不可用狀態。
第二種,設定一個js的全域性變數,當用戶點選按鈕後,改變這個全域性變數的狀態,然後通過判斷這個全域性變數的狀態來決定是否允許使用者進行提交操作。
第三種,通過時間差來約束使用者的重複提交。
注意,這裡的三種方法最好配合ajax技術使用,即使用者的操作都是在同一個頁面中進行的,提交操作是通過ajax與後臺互動完成,後臺處理頁面需返回一個布林型變數或時間差,所以在使用者看來,這是一個無重新整理操作,因為上面這三種方法對於使用者重新整理頁面的動作是無能為力的。