zoukankan      html  css  js  c++  java
  • jQuery中deferred的对象使用

    什么是deferred对象  

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

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

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

      简单说,deferred对象就是jQuery的回调函数解决方案。在英语中,defer的意思是"延迟",所以deferred对象的含义就是"延迟"到未来某个点再执行。 

      它解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口。

    使用案例

    var wait = function(dtd){
        var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
        var tasks = function(){
          alert("执行完毕!");
          dtd.resolve(); // 改变Deferred对象的执行状态
        };
    
        setTimeout(tasks,5000);
        return dtd.promise(); // 返回promise对象
      };
    
    $.when(wait())
      .done(function(){ alert("哈哈,成功了!"); })
      .fail(function(){ alert("出错啦!"); });

    文章节选自 :

      阮一峰的网络日志

      原文链接 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

  • 相关阅读:
    第九章 类的定义属性和方法
    第八章 函数作用域
    第七章 函数基础
    第六章 控制流程
    Http请求
    Django学习之-带参数的路由应用
    Django学习之--Ajax
    第二章:Django项目实例
    第一章:Django简介
    pytest汇总
  • 原文地址:https://www.cnblogs.com/lvmylife/p/7813071.html
Copyright © 2011-2022 走看看