ajax請求造成beforeSend失效,在常見的就是在請求時加載loading。發現請求耗時較長的時候。loading出不來了。這個問題的主要原因是UI線程阻塞造成的。如何解決這個問題。可以使用$.Deferred解決。
如圖:
注意3點:
1、在函數在開始定義$.Deferred
2、defer.resolve(data);必須寫入,否則後面的函數回調會不執行
3、返回$.Deferred
4、ajax必須是異步請求
這裏都定義好後,使用$.when(account.add()).done(function (data) { // do somthing });就行調用。
大家有疑問可以添加qq羣:789318548, 也可以關注今日頭條《老徐聊技術》我會解答。