首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jQuery的deferred对象详解

$.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,你没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作。...请看下面的代码,它用到了一个新的方法$.when(): $.when($.ajax("test1.html"), $.ajax("test2.html"))   .done(function(){...五、普通操作的回调函数接口(上) deferred对象的最大优点,就是它把这一套回调函数接口,从ajax操作扩展到了所有操作。...jQuery规定,deferred对象有三种执行状态----未完成,已完成和已失败。...如果执行状态是"已完成"(resolved),deferred对象立刻调用done()方法指定的回调函数;如果执行状态是"已失败",调用fail()方法指定的回调函数;如果执行状态是"未完成",则继续等待

1.3K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Promise接口实现之jQuery 的deferred对象

    Jquery中的promise的实现——deferred对象 deferred对象是jQuery的回调函数解决方案,它解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口。...现在新的ajax操作的写法是这样的: $.ajax("test.html")   .done(function(){console.log(“成功”); })   .fail(function(...如果执行状态是"已完成"(resolved),deferred对象立刻调用done()方法指定的回调函数;如果执行状态是"已失败",调用fail()方法指定的回调函数;如果执行状态是"未完成",则继续等待...它允许你为多个事件指定一个回调函数 $.when($.ajax("test1.html"), $.ajax("test2.html"))   .done(function(){ alert("成功...; }); 这样wait函数的返回值就是Deferred对象,when()函数能生效,wait()函数运行完,就会自动运行done()方法指定的回调函数。

    64810

    Promise接口实现之jQuery 的deferred对象

    Jquery中的promise的实现——deferred对象 deferred对象是jQuery的回调函数解决方案,它解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口。...现在新的ajax操作的写法是这样的: $.ajax("test.html")   .done(function(){console.log(“成功”); })   .fail(function(...如果执行状态是"已完成"(resolved),deferred对象立刻调用done()方法指定的回调函数;如果执行状态是"已失败",调用fail()方法指定的回调函数;如果执行状态是"未完成",则继续等待...它允许你为多个事件指定一个回调函数 $.when($.ajax("test1.html"), $.ajax("test2.html"))   .done(function(){ alert("成功...; }); 这样wait函数的返回值就是Deferred对象,when()函数能生效,wait()函数运行完,就会自动运行done()方法指定的回调函数。

    831100

    jQuery的deferred对象详解

    ; } }); $.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,你没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作...六、本地操作使用回到函数 deferred对象,把这一套回调函数接口,从ajax操作扩展到了所有操作。...由于jQuery.when(deferreds)方法只能接收defferred对象作为参数,所以我们需对上述wait改写!...说明其作用需要先说一下jQuery规定deferred对象的三种执行状态:未完成、已完成和已失败。...如果执行状态是”已完成”(resolved),deferred对象立刻调用done()方法指定的回调函数; 如果执行状态是”已失败”,调用fail()方法指定的回调函数; 如果执行状态是”未完成”,则继续等待

    1K31

    jQuery的deferred对象详解

    $.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,你没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作。...请看下面的代码,它用到了一个新的方法$.when(): $.when($.ajax(“test1.html”), $.ajax(“test2.html”))   .done(function(){ alert...五、普通操作的回调函数接口(上) deferred对象的最大优点,就是它把这一套回调函数接口,从ajax操作扩展到了所有操作。...jQuery规定,deferred对象有三种执行状态—-未完成,已完成和已失败。...如果执行状态是”已完成”(resolved),deferred对象立刻调用done()方法指定的回调函数;如果执行状态是”已失败”,调用fail()方法指定的回调函数;如果执行状态是”未完成”,则继续等待

    63720

    你真的知道ajax的全部吗?

    $.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,你没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作。...请看下面的代码,它用到了一个新的方法$.when(): $.when($.ajax("test1.html"), $.ajax("test2.html"))   .done(function(){ alert...五、普通操作的回调函数接口(上) deferred对象的最大优点,就是它把这一套回调函数接口,从ajax操作扩展到了所有操作。...原因是jQuery规定,任意一个deferred对象有三种执行状态----未完成,已完成和已失败。...如果直接返回dtd,$.when()的默认执行状态为"已完成",立即触发后面的done()方法,这就失去回调函数的作用了。

    98870

    大白话讲解Promise(三)搞懂jquery中的Promise 一文 的学习+新领悟

    )‍ then执行回调 doneFun failFun progressFun‍ jquery的同义词 $.ajax().success() $.ajax().error() 猛地一看,可能不太懂,...//    进行中1 def.notify(50)   //    进行中50 def.resolve("done") // 完成done def.notify(100)   //   无任何效果。...ajax中的同义词为:$.ajax().complete( ) 6、$.when的用法 和Es6不同的是,接受的不是一个数据。then响应的值数据时,也不是数据。...('全部执行完成');     console.log(data1, data2, data3); }); jquery中没有像ES6中的race方法。...ajax返回一个Deferred对象,success、error、complete是ajax提供的语法糖,功能与Deferred对象的done、fail、always一致。就酱。

    48820

    jQuery学习笔记

    AJAX 1. 请求与回调 jQuery的AJAX,核心的请求处理函数只有一个,就是 $.ajax(),然后就是一个简单的上层函数。...$.ajax() 的基本使用形式是: jQuey.ajax(settings) settings是一个对象,里面包含了所有的配置项。 url 请求的地址。...Deferred Deferred对象是在jQuery1.5中引入的回调管理对象。其作用是把一堆函数按顺序放入一个调用链,然后根据状态来依次调用这些函数。AJAX的所有操作都是使用它来进行封装的。...jQuery还提供了一个 jQuery.when()的回调管理函数,可以用于方便地管理多个事件并发的情况。...当我们需要完成,像“请求A和请求B都完成时,执行函数”之类的需求时,使用 $.when()就可以了。

    3.5K20

    JS魔法堂:jQuery.Deferred(jQuery1.5-2.1)源码剖析

    一、前言                              jQuery.Deferred作为1.5的新特性出现在jQuery上,而jQuery.ajax函数也做了相应的调整。...辅助方法——jQuery.when     功能就是等待所有入参均返回值后,以这些返回值为入参调用回调队列的函数 $.when = function(object) {   var args = arguments...jQuery1.5除了新增jQuery.Deferred特性,还以jQuery.Deferred为基础对ajax模块进行增强,相关代码如下: function done( status, statusText...1.7版本的jQuery.Deferred是否更接近Promises/A+规范呢?答案是否定的。    ...中then函数的实现方式与旧版本的不同,埋下了兼容陷阱,但由于jQuery.Deferred受众面少(直接使用Ajax、effects和queue模块的Promise形式的API较多),因此影响范围不大

    1.9K90

    JS基础——异步回调

    异步回调 因为js是单线程的,但是有很多情况的执行步骤(ajax请求远程数据,IO等)是非常耗时的,如果一直单线程的堵塞下去会导致程序的等待时间过长页面失去响应,影响用户体验了。...任务的执行不取决于代码的顺序,而取决于某个事件是否发生。 还是以f1和f2为例。首先,为f1绑定一个事件(这里采用的jQuery的写法)。...f1.trigger('done')表示,执行完成后,立即触发done事件,从而开始执行f2。...("done"); }, 1000); } jQuery.publish("done")的意思是,f1执行完成后,向"信号中心"jQuery发布"done"信号,从而引发f2的执行。...此外,f2完成执行后,也可以取消订阅(unsubscribe)。 jQuery.unsubscribe("done", f2); 这种方法的性质与"事件监听"类似,但是明显优于后者。

    4.3K22

    Javascript异步编程的4种方法

    在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是Ajax操作。...任务的执行不取决于代码的顺序,而取决于某个事件是否发生。 还是以f1和f2为例。首先,为f1绑定一个事件(这里采用的jQuery的写法)。   ...}, 1000);   } f1.trigger('done')表示,执行完成后,立即触发done事件,从而开始执行f2。.../ f1的任务代码 jQuery.publish("done");     }, 1000);   } jQuery.publish("done")的意思是,f1执行完成后,向"信号中心"jQuery...此外,f2完成执行后,也可以取消订阅(unsubscribe)。   jQuery.unsubscribe("done", f2); 这种方法的性质与"事件监听"类似,但是明显优于后者。

    77950

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券