在一些现代浏览器中已经提供了原生的Promise对象,其遵循Promise/A+标准。在jQuery1.5+,提供了$.Deferred(其可以被转化为promise对象)。很多知名的框架中,也提供了promise对象。promise对象在javascript中已经是一种很重要的模式,它在解决异.....
分类:
编程语言 时间:
2015-01-11 12:17:27
阅读次数:
204
最近遇到一个ajax请求数据的问题 ,就是想要请求3个不同的接口,然后请求完毕后对数据进行操作,主要问题就是不知道这3个请求誰先返回来,或者是在进行操作的时候不能保证数据都已经回来,首先想到能完成的就是在第一个ajax请求的succes里面写第二个ajax请求,但是大家都知道,这样写的效率会很低.....
分类:
Web程序 时间:
2015-01-09 13:55:49
阅读次数:
200
以下介绍一下jQuery中Deferred对象的使用:1. 通过$.Deferred生成一个deferredObj对象;2. deferredObj.done()指定操作成功时的回调函数;3. deferredObj.fail()指定操作失败时的回调函数;4. deferredObj.promise...
分类:
Web程序 时间:
2015-01-08 10:53:32
阅读次数:
154
1. 初始化:var deferred=$.Deferred();2. Deferred对象的三种动作是resolve, reject, 和 notify,分别对应内部时间done, fail, 和 progress; 具体使用时,定义done()的操作,然后使用对应的resolve()来进行触发;...
分类:
Web程序 时间:
2015-01-06 09:51:15
阅读次数:
139
本课主要教大家如何书写一个完整的ajax模块,讲解的代码主要跟ajax有关,而jQuery的ajax模块添加了Deferred异步编程的机制,因此对ajax的理解难度增大,还是忽略掉。但是我要讲解的代码跟jQuery的ajax模块思路是一样的,只是没有加入Deferred异步编程的思想,这样更有利于...
分类:
Web程序 时间:
2015-01-05 18:20:11
阅读次数:
208
上一课主要分析了jQuery1.51版本的jQuery Deferred。在jQuery1.6中,jQuery Deferred添加了两个方法,always,pipe。always用来添加回调,无论成功还是失败,都会执行。pipe就是管道的意思,对回调使用瀑布模型,上一个回调的返回值供下一个会调使用...
分类:
Web程序 时间:
2015-01-04 11:55:35
阅读次数:
113
之前我们讲了Mochikit Deferred,JSDeferred,现在讲jQuery Deferred。首先,我们先来讲下他们的区别:在保存回调函数时,Mochikit Deferred(dojo Deferred)是用一个2维数组保存的,里面的小数组只有两项,一个是成功回调的函数,一个是失败回...
分类:
Web程序 时间:
2014-12-30 20:33:39
阅读次数:
198
大家如果看了前面两课,就知道Deferred的静态方法next(next_default)是用setTimeout实现的(有浏览器最小时钟间隔)。但是实现这种异步操作,可以有很多种方法。JSDeferred中,针对老版本IE,以及标准浏览器都专门使用了一些方法来实现异步操作,提高异步操作的性能提速。...
分类:
Web程序 时间:
2014-12-26 12:41:37
阅读次数:
244
这一课,我们先接着上一课讲一下wait方法,以及wait方法是如何从静态方法变化实例方法的。首先我们先看wait方法为啥可以从静态方法变成实例方法,请看register源码:Deferred.register= function(name, fun){ //name="wait",fun=Defer...
分类:
Web程序 时间:
2014-12-25 20:01:22
阅读次数:
134
本课难度非常大,看一遍,蛋会疼,第二遍蛋不舒服,第三遍应该貌似懂了。初学者莫来,没必要,这完全就是一个研究。JSDeferred是日本高手cho45搞出来的,其易用性远胜于Mochikit Deferred,它的实现形态基本上奠定了后来称为Promise/A的范式,是js在异步编程上的一个里程碑作品...
分类:
Web程序 时间:
2014-12-25 12:38:50
阅读次数:
227