最近图灵喜欢出一些很薄很小的书,本书就是其中一例。不过,这个书虽小,但是已经将JavaScript异步编程方面讲了一遍。它可以解除你对JavaScript异步编程的一些误解,彻底了解它运行的机制,同时也给出了不少实际的解决方法。
“如果队列中至少有一个事件适合“触发”,则虚拟机会挑选一个事件,并调用此事件的处理器。事件处理器返回后,我们又回到队列处。”、“输入事件的工作方式完全一样:用户单击一个已附加单击事件处理器的DOM元素时,会有一个单击事件排入队列。但是,该单击事件处理器要等到当前所有正在运行的代码均以结束后才会执行。因此,使用JavaScript的那些网友一不小心就会变得毫无反应。”,这些都说明了一个问题:JavaScript是无阻塞的,事件执行并不确定。
看上去是很糟糕,不过这样可以避免cpu等待,提高了性能。node.js强大的性能,很大程度上就是因为这个无阻塞特性。
面对JavaScript的无阻塞作者给出了不少解决方法,首先是使用on和trigger形成的观察者模式,然后讲解了级联技术:
级联技术非常有用,因为它让我们不费吹灰之力就能定义异步任务的分化逻辑。
var step1 = $.post('/step1', data1);
var step2 = step1.pipe(function(){
return $.post('/step2', data2);
});
var lastStep = step2.pipe(function(){
return $.post('/step3', data3);
});
这里的lastStep对象当且仅当所有这3个Ajax调用都成功完成时才执行,其中任意一个Ajax调用未能完成,lastStep均被拒绝。
JavaScript是单线程的:“像setTimeout这样的异步函数只是简单地做延迟执行,而不是孵化新的线程。”
现在多核的情况越来越普遍,JavaScript当然想利用起来,然后我们看到了worker,但是它还比较简陋。
脚本加载:yepone是一个小巧而精干的工具,Require则是一个巨硕而强大的工具。最终选择哪个库完全取决于正在开发的应用类型和开发团队的类型。
JavaScript异步编程
《JavaScript异步编程》热门书评
-
js的异步写的还可以 就是有点短
5有用 0无用 黄云斌 2013-07-19
这书前半部分说的是js的事件 异步,后半部分说的是解决异步不爽的地方。 js的最大特点是不阻塞,所以所有事件的执行都是不确定的。听上去是很糟糕的事情,但是这样可以保持cp...
-
JavaScript异步编程
1有用 1无用 小明 2013-12-11
最近图灵喜欢出一些很薄很小的书,本书就是其中一例。不过,这个书虽小,但是已经将JavaScript异步编程方面讲了一遍。它可以解除你对JavaScript异步编程的一些误解,彻底了解它运行的机制,同时也给出了不少实际的解决方法。“如果队列中至少有一个事件适合“触发”,则虚拟机会挑选一个事件,并调用此...
-
《JavaScript异步编程》:有点生硬不过应该准确的JS异步手册
1有用 0无用 松树归雩 2013-11-08
俺还是译者,俺还是自我评价下哈。这本薄书定价稍贵,不过没有办法,版权和印数决定了单位成本比较高。想看的同学们只有忍了,不过作为参考资料的话,在手边置一本也算是物有所值吧。从内容上看,这本书确实如内容推介所言,进阶式叙述从起源到前沿,基本上目前你关于JS异步的东西,都给你条清缕细地讲清楚了。关于JS异...
-
是我看过最薄的js书籍,但内容绝对都是干货。
0有用 0无用 差不多先生 2015-01-14
是我看过最薄的js书籍,但内容绝对都是干货。是我看过最薄的js书籍,但内容绝对都是干货。是我看过最薄的js书籍,但内容绝对都是干货。是我看过最薄的js书籍,但内容绝对都是干货。是我看过最薄的js书籍,但内容绝对都是干货。...
-
基本就是对异步各方面的框架的一个介绍索引
0有用 0无用 Odysseus_110 2015-07-20
"编写工作流控制库确实是很好的练习,但没有必要为了看看轮子是怎么工作的就重新发明轮子。随着JavaScript 生态系统的成熟,工作流控制的概念会越来越普及,越来越标准化。暂时而言,如果你的应用需要工作流控制,那么最重要的是选择一个好的工作流控制库并掌握它。"作者基本就是介绍了一...
书名: JavaScript异步编程
作者: [英] Trevor Burnham
出版社: 人民邮电出版社
原作名: Async JavaScript: Build More Responsive Apps with Less Code
副标题: 设计快速响应的网络应用
译者: 许青松
出版年: 2013-6
页数: 118
定价: 32.00元
装帧: 平装
丛书: 图灵程序设计丛书
ISBN: 9787115316578