• 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的回调函数解决方案。

  • 相关阅读:
    Flask商城项目详解
    《剑指offer》题解(Python版本)
    小程序学习笔记
    Html5 语义化标签
    常用页面布局
    css 语法记录
    vue-router 配置
    axios 配置
    Mybatis Generator
    openssl_pkcs7_verify的问题之旅
  • 原文地址:https://www.cnblogs.com/sooj/p/3126691.html
Copyright © 2020-2023  润新知