ajax请求造成beforeSend失效

ajax请求造成beforeSend失效,在常见的就是在请求时加载loading。发现请求耗时较长的时候。loading出不来了。这个问题的主要原因是UI线程阻塞造成的。如何解决这个问题。可以使用$.Deferred解决。

如图:

ajax请求造成beforeSend失效

注意3点:

1、在函数在开始定义$.Deferred

2、defer.resolve(data);必须写入,否则后面的函数回调会不执行

3、返回$.Deferred

4、ajax必须是异步请求

这里都定义好后,使用$.when(account.add()).done(function (data) { // do somthing });就行调用。