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 -------------------------------------------- ...
随机推荐
- jython实现java运行python代码
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现.最近的一个项目需要将python代码转换成java实现,所以用了一 ...
- inline-block各浏览器兼容以及水平间隙问题解决方案
inline-block属性 This value causes an element to generate a block box, which itself is flowed as a sin ...
- 【链表】Reorder List
题目: Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do ...
- 按照Right-BICEP要求对实验二进行测试
我的代码实现的功能很简单,在最基本的功能上,包括有无括号(0/1),有无负数(0/1),有无乘除法(0/1)验证程序的正确性,测试用例为8个,2^3个,也就覆盖了所有的代码路径. 测试计划: 基本功能 ...
- Chapter 3 Phenomenon——3
It took every ounce of my concentration to make it down the icy brick driveway alive. 我用所有我的注意力去确定车道 ...
- elasticsearch 导入基础数据并索引之 geo_shape
我们看到的图形, 实际是由点来完成的, 有2种类型的格子模型可用于地理星座, 默认使用的是geoHash, 还有一种4叉树(quad trees), 也可用于 判断形状与索引的形状关系 1), int ...
- Linux的MySQL不能远程访问
1.首先,你要确认用户是否只允许localhost访问: 在linux下登录mysql mysql -uroot -p密码; use mysql; select `host`,`use ...
- 【.Net】含Unicode的字符串截断 VB.NET C#
Function AnsiLeftB(ByVal strArg As String, ByVal arg1 As Integer) As String Dim unicodeEncoding As E ...
- rem手机端适配
<script> document.documentElement.style.fontSize=document.documentElement.clientWidth*100/750+ ...
- rails image_tag生成图片标签
image_tag(source, options={}) Link Returns an HTML image tag for thesource. The source can be a full ...
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 -------------------------------------------- ...
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现.最近的一个项目需要将python代码转换成java实现,所以用了一 ...
inline-block属性 This value causes an element to generate a block box, which itself is flowed as a sin ...
题目: Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do ...
我的代码实现的功能很简单,在最基本的功能上,包括有无括号(0/1),有无负数(0/1),有无乘除法(0/1)验证程序的正确性,测试用例为8个,2^3个,也就覆盖了所有的代码路径. 测试计划: 基本功能 ...
It took every ounce of my concentration to make it down the icy brick driveway alive. 我用所有我的注意力去确定车道 ...
我们看到的图形, 实际是由点来完成的, 有2种类型的格子模型可用于地理星座, 默认使用的是geoHash, 还有一种4叉树(quad trees), 也可用于 判断形状与索引的形状关系 1), int ...
1.首先,你要确认用户是否只允许localhost访问: 在linux下登录mysql mysql -uroot -p密码; use mysql; select `host`,`use ...
Function AnsiLeftB(ByVal strArg As String, ByVal arg1 As Integer) As String Dim unicodeEncoding As E ...
<script> document.documentElement.style.fontSize=document.documentElement.clientWidth*100/750+ ...
image_tag(source, options={}) Link Returns an HTML image tag for thesource. The source can be a full ...