jQuery异步队列Deferred Object
异步队列是在jQuery1.5中引入的,用于实现异步任务和回调函数的解耦,为ajax模块、队列模块、ready事件提供基础功能。
jQuery.Callback
jQuery.Callback()
返回一个回调函数列表,用于增强对回调函数的管理,支持添加、移除、触发、锁定、禁用回调函数等功能。
在回调函数列表内部,通过一个数组来保存回调函数,其他方法则围绕这个数组进行操作和检测。
##jQuery.DeferredjQuery.Deferred()
返回一个异步队列,用于增强回调函数及其状态的管理,支持添加回调函数到回调函数列表、触发回调函数列表、传播任意同步和异步回调函数的状态等功能。
在异步队列内部,维护了三个回调函数列表:成功回调函数列表、失败回调函数列表、消息回调函数列表,其他方法则对这三个队列进行操作和检测。
jQuery.when
jQuery.when(deferreds)
提供了基于一个或多个对象的状态来执行回调函数的功能,通常是基于具有异步事件的异步队列。
如果传入多个异步队列,方法jQuery.when()返回一个新的主异步队列的只读副本,只读副本跟踪所传入的多个异步队列的最终状态。一旦所有的异步队列都变为成功状态,主异步队列的成功回调函数将被调用;如果其中一个异步队列的状态变为失败,主异步队列的失败回调函数将被调用。