基本信息
- 原书名:Async JavaScript: Build More Responsive Apps with Less Code
- 作者: (美)伯纳姆 (Trevor Burnham)
- 译者: 许青松
- 丛书名: 图灵程序设计丛书
- 出版社:人民邮电出版社
- ISBN:9787115316578
- 上架时间:2013-5-16
- 出版日期:2013 年6月
- 开本:32开
- 页码:117
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 网络编程 > javascript
编辑推荐
如果你是一位JavaScript程序员,如果你想让自己的Web应用拥有更高的响应度,如果你想用更优雅简洁的代码描述那些让你抓狂的“休息,休息一下,等到有结果再继续吧”的业务逻辑,那么本书就是你案头必备的那本JavaScript异步编程宝典。
本书从最最基本也是最最重要的JavaScript事件模型开始,生动地复盘了各种异步应用情景,逐一呈现了目前在用的各种异步设计模式和异步编程类库,从PubSub到Promise,从异步工作流控制类库到worker多线程技术,甚至还谈到了浏览器端脚本的异步加载技术。总而言之,在这里,你能找到JavaScript异步编程的所有,从它的前世,到它的今生,还有它的未来。
本书叙述流畅,从问题引入,到初步解决,再到用例延伸、进阶方案,一路抽丝剥茧,层层推进,精彩纷呈。行文娓娓道来,有如对坐漫谈,令人有如沐春风之感。
相关推荐:
《JavaScript语言精粹(修订版)》
《编写可维护的JavaScript》
《JavaScript高级程序设计(第3版)》
《JavaScript核心概念及实践》
《JavaScript权威指南(第6版)》
内容简介
计算机书籍
《JavaScript异步编程:设计快速响应的网络应用》讲述基本的异步处理技巧,包括PubSub、事件模式、Promises 等,通过这些技巧,可以更好地应对大型Web 应用程序的复杂性,交付快速响应的代码。理解了Javascript 的异步模式可以让读者写出结构更合理、性能更出色、维护更方便的Javascript 程序。
《JavaScript异步编程:设计快速响应的网络应用》适合JavaScript 开发人员阅读。
JavaScript是个单线程的编程语言,你如何应对多媒体、多任务、多核的世界?经验丰富的JavaScript程序员也难免被网络中错综复杂的回调弄得灰头土脸。那么,你绝对应该看看这本《JavaScript异步编程》。
《JavaScript异步编程:设计快速响应的网络应用》从最基本也是最重要的JavaScript事件模型开始,生动地复盘了各种异步应用情景,逐一呈现了目前在用的各种异步设计模式和异步编程类库,从PubSub到Promise对象,从异步工作流控制类库到worker多线程技术,直到浏览器端脚本的异步加载技术。本书叙述流畅,从问题引入,到初步解决,再到用例延伸、进阶方案,一路抽丝剥茧,层层推进,精彩纷呈。一册在手,定能让你自信地应对大型Web应用程序的复杂性,交付快速响应的JavaScript代码!
作译者
许青松,男,毕业于首都师范大学,现居北京。计算机专业出身,现研究领域为教育技术、教学法、教育理论。主要翻译兴趣方向为信息技术、学前教育和文学作品。
目录
第1章 深入理解JavaScript事件 1
1.1 事件的调度 1
1.1.1 现在还是将来运行 2
1.1.2 线程的阻塞 3
1.1.3 队列 4
1.2 异步函数的类型 5
1.2.1 异步的I/O函数 5
1.2.2 异步的计时函数 7
1.3 异步函数的编写 10
1.3.1 何时称函数为异步的 10
1.3.2 间或异步的函数 11
1.3.3 缓存型异步函数 12
1.3.4 异步递归与回调存储 14
1.3.5 返值与回调的混搭 15
1.4 异步错误的处理 18
1.4.1 回调内抛出的错误 18
1.4.2 未捕获异常的处理 20
1.4.3 抛出还是不抛出 23
1.5 嵌套式回调的解嵌套 24
前言
与此同时,出现了一个叫做Ryan Dahl的程序员。他想为事件驱动型的服务器建立一个新的框架,于是深入钻研计算机科学,苦苦寻找一种动态的、单线程的语言,最终却发现答案就在眼前。于是,Node.js就此诞生,JavaScript成为了服务器世界可以倚重的力量之一。
怎么会这样呢?2001年,Paul Graham在其文章“The Other Road Ahead” 中写下了这样的话:
如果我是你,我甚至都不会碰JavaScript……我在网上看到的大多数JavaScript都没有必要存在,而且其中很多代码都跑不通。
如今,Graham是Y Combinator的首席合伙人,这家投资集团背后有Dropbox、Heroku以及数以百计正在运作的项目,几乎所有这些项目都使用了JavaScript。正如Graham在修订后的文章中言道,“JavaScript现在能用了”。
JavaScript什么时候变成了一种体面的语言?有人说,转折点是2004年Gmail的问世。Gmail向全世界证明了重量级的Ajax允许你在浏览器端运行一流的电子邮件客户端。还有人说,转折点是2006年jQuery的问世。jQuery抽象出当时浏览器对手的API,建立了事实上的标准。(截至2011年,最大的1.7万个网站中有48%使用了jQuery。)
不管是什么原因,JavaScript就坚守在这里。Apple追随着JavaScript带来了WebKit和Safari,Microsoft追随着JavaScript带来了Metro。甚至Adobe也捧JavaScript的场,其推出的一些工具开始生成HTML5而不是Flash。JavaScript一开始只是一种微不足道的浏览器特性,现在却理所当然地成为了世界上最重要的编程语言。
感谢网络浏览器的无所不在,JavaScript比以往任何语言都更接近于兑现Java那句古老的承诺:“一次编写,到处运行。”2007年,Jeff Atwood炮制出所谓的Atwood法则:
任何可以用JavaScript写成的应用最终都会用JavaScript写。
天堂里也有麻烦事儿
一般认为JavaScript是可以利用事件模型处理异步触发任务的单线程语言。如果只有两三个可能的事件,单线程语言编写的面向事件的代码要比多线程代码简单得多。这从概念上无懈可击,而且它不再需要用互斥量或信号量来封装数据以保证数据的线程安全性。但是,如果涌现出很多事件,同时要求数据的状态能够从一个事件传递到下一个事件,那么这种简单性常常要让位于令人望而却步的代码结构——金字塔厄运再次重现。
step1(function(result1) {
step2(function(result2) {
step3(function(result3) {
// and so on...
});
});
});
“我喜欢异步编程,但我没法编出这样的代码。”这是Node.js谷歌小组中一位开发人员吐的苦水。 但问题并不在于语言,而在于程序员使用语言的方式。如何优雅地应对复杂的事件集,这仍然属于JavaScript有待解决的前沿领域。
那么,让我们继续向前冲吧!让我们证明给全世界看,即使是最复杂的问题也可以用整洁的、可维护的JavaScript代码来解决!
媒体评论
——Reginald Braithwaite,CoffeeScript Ristretto一书作者
“我平时桌面上只留两本JavaScript方面的参考书,一本是犀牛书,一本是Good Parts。而这本书会是第三本。”
——Lon Ingram,Waterfall公司首席前端开发者
“对JavaScript的狂热促使Trevor奉献出了这本开卷有益的大作。过去一段时间,JavaScript的使用情景和复杂度与日俱增,服务器端运行时环境有增无减,客户端应用也在不断增长。此时,要使代码库更具可维护性、更优雅,异步模式就成为一种基本的选择。本书献上了关于异步编程模式的大量宝贵技巧、技术和指示,让我们几乎不费吹灰之力就能得偿夙愿。干得漂亮,Trevor!”
——Christophe Porteneuve,Delicious Insights公司CTO
本书谈论了目前JavaScript开发中最关键的主题之一:如何搞定并发性和并发任务,而不是被它们搞得抓狂!这可是目前我见过的第一本专注于该主题的著作。为了不被并发任务搞得抓狂,好好看看这本书吧。
——Peter Cooper,JavaScript Weekly编辑
Trevor简明扼要地阐释了如何编写异步的JavaScript,并且不偏不倚地展示了浏览器端示例和服务器端示例。本书既是指南又是综述,十分引人入胜,任何打算打怪升级的JavaScript开发者都必须读一读。
——Wynn Netherland,Changelog联合创办人
本书是JavaScript异步王国的终极指南。任何人只要想构建成熟的、良构的、高效的JavaScript应用,就必然要了解本书谈及的概念和工具。
——Julien Biezemans,Ruby/JavaScript开发人员,Cucumber.js创建者