jquery是經常使用的一個開源js架構,其中的$.ajax請求中有一個beforesend方法,用于在向伺服器發送請求前執行一些動作。
在實際項目開發中,送出表單時常常由于網絡或者其原因,使用者點選送出按鈕誤認為自己沒有操作成功,進而會重複送出按鈕操作次數,如果頁面前端代碼沒有做一些相應的處理,通常會導緻多條同樣的資料插入資料庫,導緻髒資料的增加。要避免這種現象,在$.ajax請求中的beforesend方法中把送出按鈕禁用掉,等到ajax請求執行完畢,在恢複按鈕的可用狀态。
舉個例子:
ajax請求伺服器加載資料清單時提示loading(“加載中,請稍後...”),
事件的順序如下:
ajaxstart 全局事件
開始新的ajax請求,并且此時沒有其他ajax請求正在進行。
beforesend 局部事件
當一個ajax請求開始時觸發。如果需要,你可以在這裡設定xhr對象。
ajaxsend 全局事件
請求開始前觸發的全局事件
success 局部事件
請求成功時觸發。即伺服器沒有傳回錯誤,傳回的資料也沒有錯誤。
ajaxsuccess 全局事件
全局的請求成功
error 局部事件
僅當發生錯誤時觸發。你無法同時執行success和error兩個回調函數。
ajaxerror 全局事件
全局的發生錯誤時觸發
complete 局部事件
不管你請求成功還是失敗,即便是同步請求,你都能在請求完成時觸發這個事件。
ajaxcomplete 全局事件
全局的請求完成時觸發
ajaxstop 全局事件
當沒有ajax正在進行中的時候,觸發。