代码改变世界

随笔档案-2009年05月

写个 JavaScript 异步调用框架 (Part 4 - 链式调用)

2009-05-09 23:46 by Cat Chen, 3737 阅读, 收藏, 编辑
摘要: 我们已经实现了一个简单的异步调用框架,然而还有一些美中不足,那就是顺序执行的异步函数需要用嵌套的方式来声明。现实开发中,要按顺序执行一系列的同步异步操作又是很常见的。还是用百度Hi网页版中的例子,我们先要异步获取联系人列表,然后再异步获取每一个联系人的具体信息,而且后者是分页获取的,每次请求发送10个联系人的名称然后取回对应的具体信息。这就是多个需要顺序执行的异步请求。为此,我们需要设计一种新的操... 阅读全文

写个 JavaScript 异步调用框架 (Part 3 - 代码实现)

2009-05-07 14:54 by Cat Chen, 3583 阅读, 收藏, 编辑
摘要: 在上一篇文章里,我们说到了要实现一个Async.Operation类,通过addCallback方法传递回调函数,并且通过yield方法返回回调结果。现在我们就来实现这个类吧。类结构首先我们来搭一个架子,把需要用到的似有变量都列出来。我们需要一个数组,来保存回调函数列表;需要一个标志位,来表示异步操作是否已完成;还可以学IAsyncResult,加一个state,允许异步操作的实现者对外暴露自定义... 阅读全文

写个 JavaScript 异步调用框架 (Part 2 - 用例设计)

2009-05-07 01:12 by Cat Chen, 4058 阅读, 收藏, 编辑
摘要: 在上一篇文章里说到,我们要设计一个异步调用框架,最好能够统一同步异步调用的接口,同时具体调用顺序与实现方式无关。那么我们现在就来设计这样一个框架的用例。传递回调我们首先要考虑的一个问题是,如何传递回调入口。在最传统的XHR调用当中,回调函数会被作为最后一个参数传递给异步函数:function asyncOperation(argument, callback)在参数相当多的时候,我们可以把参数放到... 阅读全文

写个 JavaScript 异步调用框架 (Part 1 - 问题 & 场景)

2009-05-06 00:18 by Cat Chen, 5352 阅读, 收藏, 编辑
摘要: 问题在Ajax应用中,调用XMLHttpRequest是很常见的情况。特别是以客户端为中心的Ajax应用,各种需要从服务器端获取数据的操作都通过XHR异步调用完成。然而在单线程的JavaScript编程中,XHR异步调用的代码风格实在是与一般的JavaScript代码格格不入。额外参数考虑一个除法函数,如果它是纯客户端的同步函数,那么签名会是这样的:function divide(operand1... 阅读全文
点击右上角即可分享
微信分享提示