jquery--延迟对象
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ϞҪ͢τյ</title>
<script src="jquery-2.0.3.js"></script>
<script> jQuery.extend({ Deferred : function(){},
when : function(){} }); $.Deferred(); -> $.Callbacks();
$.when();
ғԙהгˇܹԚܘַߪעքì(3043 , 3183) Deferred : ғԙהг : הӬҽքͳһڜm
-------------------------------------------------------------------------
var cb = $.Callbacks(); setTimeout(function(){ alert(111);
cb.fire(); },1000); cb.add(function(){
alert(222);
}); //Јկ111 ՙկ222 Ӭҽ
------------------------------------------------------------------------ var dfd = $.Deferred(); setTimeout(function(){ alert(111);
dfd.resolve();//`̆Ԛfire },1000); dfd.done(function(){//`̆Ԛadd
alert(222);
}); //Јկ111 ՙկ222 Ӭҽ ------------------------------------------------------- setTimeout(function(){ alert(111); },1000); alert(222);//Јկ111 ՙկ222 Ӭҽ ------------------------------------------------------- var dfd = $.Deferred(); setTimeout(function(){ alert(111);
dfd.notify();//`̆Ԛfire },1000); dfd.progress(function(){//`̆Ԛadd
alert(222);
}); //Јկ111 ՙկ222 Ӭҽ $.ajax({
url : 'xxx.php',
success : function(){
alert('ԉ٦');
},
error : function(){
alert('ʧќ');
}
}); //$.ajaxŚ׃ғԙ٦Ŝ
$.ajax('xxx.php').done(function(){ alert('ԉ٦'); }).fail(function(){ alert('ʧќ'); }); ------------------------------------------------------------- var dfd = $.Deferred(); setTimeout(function(){ //alert(111);
//dfd.resolve();
dfd.reject();//`̆Ԛfire },1000); dfd.done(function(){//`̆Ԛadd
alert('ԉ٦');
}).fail(function(){//`̆Ԛadd
alert('ʧќ');
}); //Јկ111 ՙկ222 Ӭҽ ---------------------------------------------------------- var dfd = $.Deferred(); setInterval(function(){ alert(111);
dfd.resolve();//ԉ٦הӦdone
dfd.reject();//ʧќהӦfail
dfd.notify()//אהӦprogressìѐאܡԐ͵ì̹ӔҪlѸԥע },1000); dfd.done(function(){
alert('ԉ٦');
}).fail(function(){
alert('ʧќ');
}).progress(function(){
alert('א');
}); ----------------------------------------------------------------------- $(function(){
var cb = $.Callbacks('memory');
cb.add(function(){
alert(1);
});
cb.fire();
$('input').click(function(){
cb.add(function(){//ԐmemoryҢȒfireӑޭִѐڽһՎ,bִܴѐfire(),
alert(2);
});
});
----------------------------------------------------
var dfd = $.Deferred();
setTimeout(function(){
alert(111);
dfd.resolve();
},1000);
dfd.done(function(){//ֈresolve()ִѐկԶaaa,
alert('aaa');
});
$('input').click(function(){//֣ܷдťկԶbbb,{ԃքߍˇcallbackքmemory
dfd.done(function(){
alert('bbb');
});
});
}); ---------------------------------------------------------------
done
fail
progress resolve
reject
notify ------------------------------------------------------------------------ function aaa(){
var dfd = $.Deferred();
alert( dfd.state() );
setTimeout(function(){
dfd.resolve();
alert( dfd.state() );
},1000);
return dfd.promise();
}
var newDfd = aaa();
newDfd.done(function(){
alert('ԉ٦');
}).fail(function(){
alert('ʧќ');
});
newDfd.reject();
----------------------------------------------------------------------- alert(i^1);//0^1=1 1^1=0 var dfd = $.Deferred(); setTimeout(function(){ //dfd.resolve();
dfd.reject('hi'); },1000); dfd.always(function(){ alert('hello'); }); dfd.then(function(){//ԉ٦ܘַ
alert(1);
},function(){//ʧќܘַ
alert(arguments[0]);
},function(){//ѐאܘַ
alert(3);
}); ----------------------------------------------------------------------
var dfd = $.Deferred(); setTimeout(function(){ dfd.resolve('hi'); },1000); var newDfd = dfd.pipe(function(){ return arguments[0] + 'Įζ'; }); newDfd.done(function(){
alert( arguments[0] );
});
</script>
</head> <body>
<input type="button" value="֣ܷ">
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script src="jquery-2.0.3.js"></script>
<script> var dfd = $.Deferred();
dfd.done();//完成触发成功的方法 未完成触发fail方法。
$.when().done();//when返回延迟对象,when可以对多个延迟对象做操作。 --------------------------------------------------------------------
function aaa(){
var dfd = $.Deferred(); dfd.resolve();//完成
dfd.reject(); return dfd;
} function bbb(){
var dfd = $.Deferred(); //dfd.resolve();
dfd.reject();// return dfd;
} aaa().done(function(){
alert('成功');
}); $.when( aaa() , bbb() ).done(function(){//aaa,bbb延迟对象都完成执行done,都失败走fail
//aaa,bbb要返回~延迟对象
alert('成功');
}).fail(function(){
alert('失败');
}); $.when( ).done(function(){
alert('成功');
}); /*when的源码 return $.Deferred(); arguments[0]
arguments[1]
arguments[2]
arguments[3] done() 计数器 :4*/ function aaa(){
var dfd = $.Deferred();
dfd.resolve();
return dfd;
} function bbb(){
var dfd = $.Deferred();
dfd.reject();
//return dfd;
} $.when( 123 , 456 ).done(function(){
alert(arguments[0]);
alert(arguments[1]);
alert('成功');
}).fail(function(){
alert('失败');
}); $.when( aaa() , 111 , bbb() , 222 ).done(function(){
alert('成功');
}).fail(function(){
alert('失败');
});
</script>
</head> <body>
</body>
</html>
jquery--延迟对象的更多相关文章
- jquery源码解析:jQuery延迟对象Deferred(工具方法)详解2
请接着上一课继续看. $.Deferred()方法中,有两个对象,一个是deferred对象,一个是promise对象. promise对象有以下几个方法:state,always,then,prom ...
- jquery源码解析:jQuery延迟对象Deferred(工具方法)详解1
请先看上一课的回调对象.Deferred是通过extend添加到jQuery中的工具方法.如下所示: jQuery.extend({ Deferred: function( func ) { }, w ...
- jquery的2.0.3版本源码系列(7):3043行-3183行,deferred延迟对象,对异步的统一管理
目录 part1 deferred延迟对象 part2 when辅助方法 网盘源代码 链接: https://pan.baidu.com/s/1skAj8Jj 密码: izta part1 defe ...
- jQuery源码02--(3043 , 3183) Deferred : 延迟对象 : 对异步的统一管理
//延迟对象 jQuery.extend({ Deferred: function( func ) { var tuples = [//resolve完成.reject未完成.notify进行中类似于 ...
- jQuery的延迟对象(十一)
在前端这个领域里面,ajax请求非常常见. // 前提引入jquery $.ajax({ type: 'get', url: '/path/to/data', success: function (r ...
- jQuery的延迟对象
之前看别人的demo,发现在延迟对象被resolve时要执行的代码,有时会写在deferred.then方法里执行,有时会写在deferred.done方法里执行. 这让对延迟对象一知半解的我非常困惑 ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- 延迟对象$q和供应商配置config
1.angular总的$q和jquery中的延迟对象很类似,用法也差不多 m1.controller('meng',['$scope','$q',function($scope,$q){ var df ...
- JS搞基指南----延迟对象入门提高资料整理
JavaScript的Deferred是比较高大上的东西, 主要的应用还是主ajax的应用, 因为JS和nodeJS这几年的普及, 前端的代码越来越多, 各种回调套回调再套回调实在太让人崩溃, ...
随机推荐
- Wordpress 问题
迁移乱码 最近在做 wordpress 迁移,数据导入到服务器后,前后台都是乱码, phpMyAdmin 里的表数据就出现了乱码. 如果您也遇到和我一样的情况,本地使用 phpMyAdmin 导出 s ...
- 001.TypeScript简介.md
TypeScript是一门开源的,由微软开发维护的,发布于2012年10月的静态类型的语言: 他是ECMAScript的超集,支持JavaScript的所有语法和语义,并且在此基础之上提供了更多额外的 ...
- caffe(13) 数据可视化(python接口)配置
caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...
- bzoj1051 [HAOI2006]受欢迎的牛 tarjan&&缩点
题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的“喜欢”是可以传递的——如果A喜 欢B,B喜欢C,那么A也喜欢C ...
- bzoj2763 [JLOI]飞行路线 分层图最短路
问题描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的 ...
- caioj 1075 动态规划入门(中链式2:能量项链)(中链式dp总结)
我又总结了一种动归模型-- 这道题和上一道题很类似,都是给一个序列,然后相邻的元素可以合并 然后合并后的元素可以再次合并 那么就可以用这两道题类似的方法解决 简单来说就是枚举区间,然后枚举断点 加上断 ...
- Object-C,文件路径API
犀利吐槽 1.同样都是"文件和目录操作",java中,就用java.util.File一个类,就封装了很多API,而Object-C搞了这么多类和函数.具体原因,有待分析啊. 2. ...
- Android布局之FrameLayout
框架布局(帧布局)是最简单的布局形式.所有添加到这个布局中的视图都以层叠的方式显示.第一个添加的控件被放在最底层,最后一个添加到框架布局中的视图显示在最顶层,上一层的控件会覆盖下一层的控件.这种显示方 ...
- 八 rowkey设计 几种方法
简单来讲,rowkey就是 KeyValue 中的key rowkey设计之 尽量散列设计 RowKey 如第三部分第六中讲到,如果数据都是有序的存储到一个特定的范围内,将会存 ...
- Maven的SSH搭建以及部署
本人有点傻,研究Maven研究了有一段时间,刚刚有些入门,记录下来方便以后使用 工作环境:jdk7 myeclipse10 maven3.1.1 1 下载maven3.1.1 http://maven ...