天天看點

Ajax等待傳回結果時,彈出一個友好的等待提示 巧用Ajax的beforeSend 提高使用者體驗

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正在進行中的時候,觸發。

繼續閱讀