zoukankan      html  css  js  c++  java
  • jquery Deferred对象

    <script>
    function f1(){
        var D = $.Deferred();
        setTimeout(
            function(){
                alert("yaha!");
                //D.resolve(); // 改变deferred对象的运行状态为"已完成",立即触发done
                D.reject(); // 改变deferred对象的运行状态为"未完成",立即触发fail
            },2000
        );
        return D.promise();    
    }
    function f2(){
        var D = $.Deferred();
        setTimeout(
            function(){
                alert("yaha!");
                D.resolve();
                D.reject();
            },5000
        );
        return D.promise();    
    }
    
    $.when(f1(),f2())
    .done(function(){alert('done!');})
    .fail(function(){alert('fail!');});
    </script>

    开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。

    通常的做法是,为它们指定回调函数(callback)。即事先规定,一旦它们运行结束,应该调用哪些函数。

    但是,在回调函数方面,jQuery的功能非常弱。为了改变这一点,jQuery开发团队就设计了Deferred对象(1.5版本)。

    简单说,deferred对象就是jQuery的回调函数解决方案。

  • 相关阅读:
    【数据库领域】mysql中in与or对比
    数据库优化
    数据库-索引
    数据库-事务
    数据库-视图
    数据库设计
    数据库编程提高
    数据库高级操作
    数据库基本操作
    with-上下文管理器
  • 原文地址:https://www.cnblogs.com/sooj/p/3126691.html
Copyright © 2011-2022 走看看