JQUERY的Deferred应用

1)与$.when()一起调用

$.when()提供了一种根据Defererred对象的状态来执行回调函数的办法。它接受一个或者多个Defeered对象。

    $(function(){
         $.when($.ajax('test.html')).then(function(data, textStatus, jqXHR){
             console.log(data);jQuery Deferred模块详解
         },function(){
             alert('failure');
         })
    });
在只使用一个参数的情况下,$.when()和直接使用Deferred对象没有什么区别,它也返回一个Deferred对象。$.when()更大的作 用在于使用多个Defeered对象时,此时$.when()返回一个包含所有Deferred状态的超级Deferred对象。并且如果有一个 Deferred失败,那么这个超级Deferred的状态将为failed,只有在所有Deferred对象都实现时,返回的超级Deferred对象 状态才为resolved。

    $(function(){
                 //假设test.html不存在,那么将调用fail回调函数,弹出alert对话框
         $.when($.ajax('test.html'), $.ajax('test.html')).then(function(args1,args2){
             console.log(args1);
         },function(){
             alert('failure');
         })
    });
这非常适用于以下的业务场景:当一个回调函数需要依赖多个ajax请求取回数据才能被触发的情况。

你可能感兴趣的:(JQUERY的Deferred应用)