Jquery异步 Deferred Object
Deferred Object
function f1() {
var dfd = $.Deferred();
setTimeout(function () {
dfd.resolve();// resolved, rejected, or still in progress.
}, 500);
return dfd.promise();
}
f1().done(function () {
console.log("Hello World !")
}).fail(function () {
console.log("Error")
});
var wait = function (dtd) {
setTimeout(function () {
dtd.resolve();//表示处理结束, 调用后立即执行.done方法
//dtd.reject();//标识处理失败,调用后立即执行fail方法
}, 500);
return dtd.promise();
};
//使用$.when()为普通操作添加回调函数 为多个操作指定回调函数
//$.when(deferred, deferred,...):多有的延迟对象都调用了resolve()时才执行done;只要有一个延迟对象调用了reject()就会执行fail()。
//如果参数不是延迟对象就会跳过该参数并代表成功,如果参数都不是延迟对象,也会成功,会执行done。
//成功或失败的回调函数的参数对应when中的参数,如果参数是延迟对象回调函数得到undefined,不是延迟对象得到参数值。
//done中的方法可以接受参数由when调用的方法返回
var dtd = $.Deferred();
$.when(wait(dtd), wait(dtd))
.done(function (p1, p2) {
console.log("when 多个方法执行成功 ")
})
.fail(function () {
console.log("Error")
});
//还可以直接在wait对象上部署deferred接口。
$.Deferred(wait)
.done(function () {
console.log("Success ")
})
.fail(function () {
console.log("Error")
});
// 为了省事,可以把done()和fail()合在一起写,这就是then()方法。
$.Deferred(wait)
.then(function () {
console.log("Success ")
}, function () {
console.log("Error")
}).always(function () {
console.log("总是执行的方法");
});
/* 如果then()有两个参数,那么
第一个参数是done()方法的回调函数,
第二个参数是fail()方法的回调方法。
如果then()
只有一个参数,那么等同于done()。*/
deferred.always()
Add handlers to be called when the Deferred object is either resolved or rejected.
deferred.done()
Add handlers to be called when the Deferred object is resolved.
deferred.fail()
Add handlers to be called when the Deferred object is rejected.
deferred.isRejected()
Determine whether a Deferred object has been rejected.
deferred.isResolved()
Determine whether a Deferred object has been resolved.
deferred.notify()
Call the progressCallbacks on a Deferred object with the given args.
deferred.notifyWith()
Call the progressCallbacks on a Deferred object with the given context and args.
Also in: Deprecated > Deprecated 1.8
deferred.pipe()
Utility method to filter and/or chain Deferreds.
deferred.progress()
Add handlers to be called when the Deferred object generates progress notifications.
deferred.promise()
Return a Deferred’s Promise object.
deferred.reject()
Reject a Deferred object and call any failCallbacks with the given args.
deferred.rejectWith()
Reject a Deferred object and call any failCallbacks with the given context and args.
deferred.resolve()
Resolve a Deferred object and call any doneCallbacks with the given args.
deferred.resolveWith()
Resolve a Deferred object and call any doneCallbacks with the given context and args.
deferred.state()
Determine the current state of a Deferred object.
deferred.then()
Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.
jQuery.Deferred()
A factory function that returns a chainable utility object with methods to register multiple callbacks into callback queues, invoke callback queues, and relay the success or failure state of any synchronous or asynchronous function.
Also in: Core
jQuery.when()
Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events.
.promise()
Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished.
Jquery异步 Deferred Object的更多相关文章
- jQuery异步Deferred
原文链接:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html 普通 ...
- jQuery源码学习:Deferred Object
本文所有讨论均基于jQuery版本3.1.1,官网http://jquery.com/. 一.Deferred Object 1. 简介和创建 详见API:http://api.jquery.com/ ...
- jQuery异步框架探究2:jQuery.Deferred方法
(本文针对jQuery1.6.1版本号)关于Deferred函数的描写叙述中有一个词是fledged,意为"羽翼丰满的",说明jQuery.Deferred函数应用应该更成熟. 这 ...
- jQuery之Deferred源码剖析
一.前言 大约在夏季,我们谈过ES6的Promise(详见here),其实在ES6前jQuery早就有了Promise,也就是我们所知道的Deferred对象,宗旨当然也和ES6的Promise一样, ...
- jquery 之 Deferred 使用与实现
观察者模式是开发中经常使用的模式,这个模式由两个主要部分组成:主题和观察者.通过观察者模式,实现主题和观察者的解耦. 主题负责发布内容,而观察者则接收主题发布的内容.通常情况下,观察者都是多个,所以, ...
- jQuery的deferred对象
应用场景:处理异步任务 看到一篇阮一峰老师的博客挺好的讲的就是jQuery的deferred对象.坦诚讲之前没有怎么用过这个东东呢. 摘其中几点记录下 (1) $.Deferred() 生成一个def ...
- ASP.NET MVC验证 - jQuery异步验证
本文主要体验通过jQuery异步验证. 在很多的教材和案例中,MVC验证都是通过提交表单进行的.通过提交表单,可以很容易获得验证出错信息.因为,无论是客户端验证还是服务端验证,总能找到与Model属性 ...
- MVC验证11-对复杂类型使用jQuery异步验证
原文:MVC验证11-对复杂类型使用jQuery异步验证 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...
- jquery的deferred使用详解
原文:hhtps://www.cnblogs.com/shijingjing07/p/6403450.html -------------------------------------------- ...
随机推荐
- require/load/include/extend的区别
require 一般用于加载一个库,当多次使用require加载一个库时,只有第一次有效,后面的都会加载失败,也就是会返回"false",以为require会追踪文件是否被加载. ...
- saltstack快速入门
SALTSTACK是什么? Salt是一种和以往不同的基础设施管理方法,它是建立在大规模系统高速通讯能力可以大幅提升的想法上.这种方法使得Salt成为一个强大的能够解决基础设施中许多特定问题的多任务系 ...
- SpringMVC访问WEB-INF下的jsp的方法
当输入localhost:8080/项目名 浏览器弹出不知道神马错误 The absolute uri: http://java.sun.com/jsp/jstl/core cannot be res ...
- Term Weighting
对文本分词后,接下来需要对分词后的每个term计算一个权重,重要的term应该给与更高的权重.举例来说,“什么产品对减肥帮助最大?”的term weighting结果可能是: “什么 0.1,产品 0 ...
- redis-redisTemplate模糊匹配删除
前几天需要一个模糊删除redis中key的功能, 没有多想, 直接 String key = "noteUserListenedPoi:*"; redisTemplate.del ...
- sparkthriftserver启动及调优
Sparkthriftserver启用及优化 1. 概述 sparkthriftserver用于提供远程odbc调用,在远端执行hive sql查询.默认监听10000端口,Hiveserver2默 ...
- 用java实现一个简易编译器-语法解析
语法和解析树: 举个例子看看,语法解析的过程.句子:“我看到刘德华唱歌”.在计算机里,怎么用程序解析它呢.从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是“我”,动词是“看见”, 谓语从句 ...
- javaRPC原理
在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 而一旦踏入公司尤其是大型互联网公司就会发现,公司的 ...
- Lucene系列-facet--转
https://blog.csdn.net/whuqin/article/details/42524825 1.facet的直观认识 facet:面.切面.方面.个人理解就是维度,在满足query的前 ...
- Rails中activeAdmin的使用
一.开始ActiveAdmin Active Admin是一个发布在RAILS3中使用的Gem. 1.我们为了快速开始我们对Active Admin的了解,我们首先安装它: 在你GemFile中添加g ...
function f1() {
var dfd = $.Deferred();
setTimeout(function () {
dfd.resolve();// resolved, rejected, or still in progress.
}, 500);
return dfd.promise();
}
f1().done(function () {
console.log("Hello World !")
}).fail(function () {
console.log("Error")
});
var wait = function (dtd) {
setTimeout(function () {
dtd.resolve();//表示处理结束, 调用后立即执行.done方法
//dtd.reject();//标识处理失败,调用后立即执行fail方法
}, 500);
return dtd.promise();
};
//使用$.when()为普通操作添加回调函数 为多个操作指定回调函数
//$.when(deferred, deferred,...):多有的延迟对象都调用了resolve()时才执行done;只要有一个延迟对象调用了reject()就会执行fail()。
//如果参数不是延迟对象就会跳过该参数并代表成功,如果参数都不是延迟对象,也会成功,会执行done。
//成功或失败的回调函数的参数对应when中的参数,如果参数是延迟对象回调函数得到undefined,不是延迟对象得到参数值。
//done中的方法可以接受参数由when调用的方法返回
var dtd = $.Deferred();
$.when(wait(dtd), wait(dtd))
.done(function (p1, p2) {
console.log("when 多个方法执行成功 ")
})
.fail(function () {
console.log("Error")
});
//还可以直接在wait对象上部署deferred接口。
$.Deferred(wait)
.done(function () {
console.log("Success ")
})
.fail(function () {
console.log("Error")
});
// 为了省事,可以把done()和fail()合在一起写,这就是then()方法。
$.Deferred(wait)
.then(function () {
console.log("Success ")
}, function () {
console.log("Error")
}).always(function () {
console.log("总是执行的方法");
});
/* 如果then()有两个参数,那么
第一个参数是done()方法的回调函数,
第二个参数是fail()方法的回调方法。
如果then()
只有一个参数,那么等同于done()。*/
deferred.always()
Add handlers to be called when the Deferred object is either resolved or rejected.
deferred.done()
Add handlers to be called when the Deferred object is resolved.
deferred.fail()
Add handlers to be called when the Deferred object is rejected.
deferred.isRejected()
Determine whether a Deferred object has been rejected.
deferred.isResolved()
Determine whether a Deferred object has been resolved.
deferred.notify()
Call the progressCallbacks on a Deferred object with the given args.
deferred.notifyWith()
Call the progressCallbacks on a Deferred object with the given context and args.
deferred.pipe()
Utility method to filter and/or chain Deferreds.
deferred.progress()
Add handlers to be called when the Deferred object generates progress notifications.
deferred.promise()
Return a Deferred’s Promise object.
deferred.reject()
Reject a Deferred object and call any failCallbacks with the given args.
deferred.rejectWith()
Reject a Deferred object and call any failCallbacks with the given context and args.
deferred.resolve()
Resolve a Deferred object and call any doneCallbacks with the given args.
deferred.resolveWith()
Resolve a Deferred object and call any doneCallbacks with the given context and args.
deferred.state()
Determine the current state of a Deferred object.
deferred.then()
Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.
jQuery.Deferred()
A factory function that returns a chainable utility object with methods to register multiple callbacks into callback queues, invoke callback queues, and relay the success or failure state of any synchronous or asynchronous function.
jQuery.when()
Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events.
.promise()
Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished.
原文链接:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html 普通 ...
本文所有讨论均基于jQuery版本3.1.1,官网http://jquery.com/. 一.Deferred Object 1. 简介和创建 详见API:http://api.jquery.com/ ...
(本文针对jQuery1.6.1版本号)关于Deferred函数的描写叙述中有一个词是fledged,意为"羽翼丰满的",说明jQuery.Deferred函数应用应该更成熟. 这 ...
一.前言 大约在夏季,我们谈过ES6的Promise(详见here),其实在ES6前jQuery早就有了Promise,也就是我们所知道的Deferred对象,宗旨当然也和ES6的Promise一样, ...
观察者模式是开发中经常使用的模式,这个模式由两个主要部分组成:主题和观察者.通过观察者模式,实现主题和观察者的解耦. 主题负责发布内容,而观察者则接收主题发布的内容.通常情况下,观察者都是多个,所以, ...
应用场景:处理异步任务 看到一篇阮一峰老师的博客挺好的讲的就是jQuery的deferred对象.坦诚讲之前没有怎么用过这个东东呢. 摘其中几点记录下 (1) $.Deferred() 生成一个def ...
本文主要体验通过jQuery异步验证. 在很多的教材和案例中,MVC验证都是通过提交表单进行的.通过提交表单,可以很容易获得验证出错信息.因为,无论是客户端验证还是服务端验证,总能找到与Model属性 ...
原文:MVC验证11-对复杂类型使用jQuery异步验证 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...
原文:hhtps://www.cnblogs.com/shijingjing07/p/6403450.html -------------------------------------------- ...
require 一般用于加载一个库,当多次使用require加载一个库时,只有第一次有效,后面的都会加载失败,也就是会返回"false",以为require会追踪文件是否被加载. ...
SALTSTACK是什么? Salt是一种和以往不同的基础设施管理方法,它是建立在大规模系统高速通讯能力可以大幅提升的想法上.这种方法使得Salt成为一个强大的能够解决基础设施中许多特定问题的多任务系 ...
当输入localhost:8080/项目名 浏览器弹出不知道神马错误 The absolute uri: http://java.sun.com/jsp/jstl/core cannot be res ...
对文本分词后,接下来需要对分词后的每个term计算一个权重,重要的term应该给与更高的权重.举例来说,“什么产品对减肥帮助最大?”的term weighting结果可能是: “什么 0.1,产品 0 ...
前几天需要一个模糊删除redis中key的功能, 没有多想, 直接 String key = "noteUserListenedPoi:*"; redisTemplate.del ...
Sparkthriftserver启用及优化 1. 概述 sparkthriftserver用于提供远程odbc调用,在远端执行hive sql查询.默认监听10000端口,Hiveserver2默 ...
语法和解析树: 举个例子看看,语法解析的过程.句子:“我看到刘德华唱歌”.在计算机里,怎么用程序解析它呢.从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是“我”,动词是“看见”, 谓语从句 ...
在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 而一旦踏入公司尤其是大型互联网公司就会发现,公司的 ...
https://blog.csdn.net/whuqin/article/details/42524825 1.facet的直观认识 facet:面.切面.方面.个人理解就是维度,在满足query的前 ...
一.开始ActiveAdmin Active Admin是一个发布在RAILS3中使用的Gem. 1.我们为了快速开始我们对Active Admin的了解,我们首先安装它: 在你GemFile中添加g ...