JavaScript的异步开发
来源:互联网 发布:网络奇兵3什么时候出 编辑:程序博客网 时间:2024/06/04 18:32
最近一个使用JavaScript开发的SharePoint项目,里面需要使用各种JavaScript去操作SharePoint的list,但在开发过程中,我被JavaScript的异步彻底击毁,一直以来,我以为我掌握了JavaScript的异步,但我发现我只掌握了一些皮毛,所以我将我在这个项目中对异步做如下总结。
要实现JavaScript的异步,可以采用如下方法:
1.回调函数:
var get=function(callback){ var myInfomation="hello world";//从某处得到了这个信息:hello world callback{ success="true", myInformation:myInfomation }}
get(function(result){ if(result.success){ var myInfomation=result.myInfomation; //your codes to operate the infomation }});
2.Promise:
Jquery的Deferred对象就是Promise的一种实现。 我们做web开发的或多或少的了解Jquery,但我们是否真的熟悉Jquery呢?我想大家都使用过Jquery的$.ajax()去进行过异步操作,但我们又是否了解$.ajax()能异步操作是和Deferred对象有关呢?Deferred对象有三个状态:失败,成功,正在进程中。如果Deferred的状态为成功的话,执行done方法;如果Deferred的状态为失败的话,执行fail方法
var get=function(){ var dfd=$.Deferred(); var i=1;//这个i可能从别处获得,这里假设是1 if(i==1){ dfd.resolve();//resolve说明get方法成功了了 }else{ dfd.reject(); //reject说明get方法失败了 } return dfd;}
get().done(function(){ //如果get方法成功,执行这里的代码}).fail(function(){ //如果get方法失败,执行这里的代码});Deferred对象可以让JavaScript链式开发,还有很多其他的库和Jquery的Deferred对象的用法相似,比如NodeJS有一个叫做Q的库。
3.观察者模式
Jquery的事件绑定on和事件触发trigger就类似观察者模式,可以很好的完成异步操作。
如果要使用JavaScript原生实现这个过程,请参考http://blog.csdn.net/zhoulu001/article/details/52874081
0 0
- JavaScript的异步开发
- 【web前端开发技术】深入理解JavaScript异步编程--JavaScript异步编程的终极演变
- JavaScript的异步实现
- 异步JavaScript的进化
- JavaScript的异步实现
- JavaScript的异步实现
- javascript的异步设计
- JavaScript的异步运行机制
- 【windows8开发】异步编程之Promise(Javascript)
- 【windows8开发】异步编程之Promise(Javascript)
- javascript异步开发四种方法
- JavaScript 的异步流程控制
- javascript的ajax异步请求
- 谈谈JavaScript的异步实现
- Javascript异步编程的方法
- javascript的settimeout和异步
- 异步加载javascript的方式
- JavaScript异步编程的原理
- 欢迎使用CSDN-markdown编辑器
- Boost 函数对象
- leetcode 9. Palindrome Number
- 组素数
- 输入一个数间隔输出
- JavaScript的异步开发
- 1.1 ARM汇编处理器模式介绍
- ActiveMQ学习笔记
- C++第一次实验—3
- 马虎的算式
- Linux内核分析——构造一个简单的Linux内核MenuOS
- bzoj 2083 (二分查找)
- Ubuntu下开发常用操作技巧.
- CSS overflow: hidden的例子