zoukankan      html  css  js  c++  java
  • jquery--延迟对象

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>ϞҪ͢τյ</title>
    <script src="jquery-2.0.3.js"></script>
    <script>
    
    jQuery.extend({
        
        Deferred : function(){},
        when : function(){}
        
    });
    
    $.Deferred();   ->   $.Callbacks();
    $.when();
    ғԙהгˇܹԚܘַߪעքì(3043 , 3183) Deferred : ғԙהг : הӬҽքͳһڜm
    -------------------------------------------------------------------------
    var cb = $.Callbacks();
    
    setTimeout(function(){
        
        alert(111);
        cb.fire();
        
    },1000);
    
    cb.add(function(){
        alert(222);
    });   //Јկ111    ՙկ222  Ӭҽ
    ------------------------------------------------------------------------
    
    var dfd = $.Deferred();
    
    setTimeout(function(){
        
        alert(111);
        dfd.resolve();//`̆Ԛfire
        
    },1000);
    
    dfd.done(function(){//`̆Ԛadd
        alert(222);
    });    //Јկ111    ՙկ222   Ӭҽ
    
    -------------------------------------------------------
    
    
    setTimeout(function(){
        
        alert(111);
        
    },1000);
    
    alert(222);//Јկ111    ՙկ222   Ӭҽ
    
    -------------------------------------------------------
    
    
    var dfd = $.Deferred();
    
    setTimeout(function(){
        
        alert(111);
        dfd.notify();//`̆Ԛfire
        
    },1000);
    
    dfd.progress(function(){//`̆Ԛadd
        alert(222);
    });        //Јկ111    ՙկ222   Ӭҽ
    
    
    $.ajax({
        url : 'xxx.php',
        success : function(){
            alert('ԉ٦');
        },
        error : function(){
            alert('ʧќ');
        }
    });
    
    //$.ajaxŚ׃‹ғԙ٦Ŝ
    $.ajax('xxx.php').done(function(){ alert('ԉ٦'); }).fail(function(){ alert('ʧќ'); });
    
    
    -------------------------------------------------------------
    
    var dfd = $.Deferred();
    
    setTimeout(function(){
        
        //alert(111);
        //dfd.resolve();
        dfd.reject();//`̆Ԛfire
        
    },1000);
    
    dfd.done(function(){//`̆Ԛadd
        alert('ԉ٦');
    }).fail(function(){//`̆Ԛadd
        alert('ʧќ');
    });    //Јկ111    ՙկ222   Ӭҽ
    
    ----------------------------------------------------------
    
    var dfd = $.Deferred();
    
    setInterval(function(){
        
        alert(111);
        dfd.resolve();//ԉ٦הӦdone
        dfd.reject();//ʧќהӦfail
        dfd.notify()//޸׈אהӦprogressì޸ѐאܡԐ޸׈͵ì̹ӔҪlѸԥע
        
    },1000);
    
    dfd.done(function(){
        alert('ԉ٦');
    }).fail(function(){
        alert('ʧќ');
    }).progress(function(){
        alert('޸׈א');
    });
    
    -----------------------------------------------------------------------
    
    
    $(function(){
        var cb = $.Callbacks('memory');
        cb.add(function(){
            alert(1);
        });
        cb.fire();
        $('input').click(function(){
            cb.add(function(){//ԐmemoryҢȒfireӑޭִѐڽһՎ,bִܴѐfire(),
                alert(2);
            });
        });
    ----------------------------------------------------    
        var dfd = $.Deferred();
        setTimeout(function(){
            alert(111);
            dfd.resolve();
        },1000);
        dfd.done(function(){//ֈ؅resolve()ִѐ‹կԶaaa,
            alert('aaa');
        });
        $('input').click(function(){//֣ܷдťկԶbbb,{ԃքߍˇcallbackքmemory
            dfd.done(function(){
                alert('bbb');
            });
        });
    });
    
    ---------------------------------------------------------------
    done
    fail
    progress
    
    resolve
    reject
    notify
    
    
    ------------------------------------------------------------------------
    
    function aaa(){
        var dfd = $.Deferred();
        alert( dfd.state() );
        setTimeout(function(){
            dfd.resolve();
            alert( dfd.state() );
        },1000);
        return dfd.promise();
    }
    var newDfd = aaa();
    newDfd.done(function(){
        alert('ԉ٦');
    }).fail(function(){
        alert('ʧќ');
    });
    newDfd.reject();
    -----------------------------------------------------------------------
    
    alert(i^1);//0^1=1  1^1=0
    
    
    
    var dfd = $.Deferred();
    
    setTimeout(function(){
        
        //dfd.resolve();
        dfd.reject('hi');
        
    },1000);
    
    dfd.always(function(){
        
        
        alert('hello');
        
        
    });
    
    dfd.then(function(){//ԉ٦ܘַ
        alert(1);
    },function(){//ʧќܘַ
        alert(arguments[0]);
    },function(){//޸ѐאܘַ
        alert(3);
    });
    
    ----------------------------------------------------------------------
    var dfd = $.Deferred();
    
    setTimeout(function(){
        
        dfd.resolve('hi');
        
    },1000);
    
    var newDfd = dfd.pipe(function(){
        
        return arguments[0] + 'Įζ';
        
    });
    
    newDfd.done(function(){
        alert( arguments[0] );
    });
    </script>
    </head>
    
    <body>
    <input type="button" value="֣ܷ">
    </body>
    </html>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <script src="jquery-2.0.3.js"></script>
    <script>
    
    var dfd = $.Deferred();
    dfd.done();//完成触发成功的方法     未完成触发fail方法。
    $.when().done();//when返回延迟对象,when可以对多个延迟对象做操作。
    
    --------------------------------------------------------------------
    function aaa(){
        var dfd = $.Deferred();
        
        dfd.resolve();//完成
        dfd.reject();
        
        return dfd;
    }
    
    function bbb(){
        var dfd = $.Deferred();
        
        //dfd.resolve();
        dfd.reject();//
        
        return dfd;
    }
    
    aaa().done(function(){
        alert('成功');
    });
    
    $.when( aaa() , bbb() ).done(function(){//aaa,bbb延迟对象都完成执行done,都失败走fail
    //aaa,bbb要返回~延迟对象
        alert('成功');
    }).fail(function(){
        alert('失败');
    });
    
    
    
    $.when( ).done(function(){
        alert('成功');
    });
    
    
    /*when的源码
    
    
    return $.Deferred();
     
     arguments[0]
     arguments[1]
     arguments[2]
     arguments[3]
    
    
    done()
    
    计数器 :4*/
    
    
    function aaa(){
        var dfd = $.Deferred();
        dfd.resolve();
        return dfd;
    }
    
    function bbb(){
        var dfd = $.Deferred();
        dfd.reject();
        //return dfd;
    }
    
    $.when( 123 , 456 ).done(function(){
        alert(arguments[0]);
        alert(arguments[1]);
        alert('成功');
    }).fail(function(){
        alert('失败');
    });
    
    
    $.when( aaa() , 111 , bbb() , 222 ).done(function(){
        alert('成功');
    }).fail(function(){
        alert('失败');
    });
    </script>
    </head>
    
    <body>
    </body>
    </html>
  • 相关阅读:
    Centos7:mariadb替换mysql
    CentOS5 部署 戴尔OMSA
    《Zero MQ》
    可扩展的Web架构和分布式系统
    队列实现
    超级好用的正则表达式网站
    <转>undefined与null的区别
    JS事件
    sublime text 3 快捷键
    设置className的方式(不使用setAttribute)
  • 原文地址:https://www.cnblogs.com/yaowen/p/6923542.html
Copyright © 2011-2022 走看看