JavaScript異步編程:設(shè)計快速響應(yīng)的網(wǎng)絡(luò)應(yīng)用這本書適合中級JavaScript的用戶 ,講述基本的異步處理技巧,包括PubSub、事件模式、Promises等,通過這些技巧,可以更好地應(yīng)對大型Web應(yīng)用程序的復(fù)雜性,交付快速響應(yīng)的代碼。理解了Javascript的異步模式可以讓讀者寫出結(jié)構(gòu)更合理、性能更出色、維護更方便的Javascript程序。
JavaScript異步編程目錄
第1章 深入理解JavaScript事件 1
1.1 事件的調(diào)度 1
1.1.1 現(xiàn)在還是將來運行 2
1.1.2 線程的阻塞 3
1.1.3 隊列 4
1.2 異步函數(shù)的類型 5
1.2.1 異步的I/O函數(shù) 5
1.2.2 異步的計時函數(shù) 7
1.3 異步函數(shù)的編寫 10
1.3.1 何時稱函數(shù)為異步的 10
1.3.2 間或異步的函數(shù) 11
1.3.3 緩存型異步函數(shù) 12
1.3.4 異步遞歸與回調(diào)存儲 14
1.3.5 返值與回調(diào)的混搭 15
1.4 異步錯誤的處理 18
1.4.1 回調(diào)內(nèi)拋出的錯誤 18
1.4.2 未捕獲異常的處理 20
1.4.3 拋出還是不拋出 23
1.5 嵌套式回調(diào)的解嵌套 24
1.6 小結(jié) 26
第2章 分布式事件 27
2.1 PubSub模式 28
2.1.1 EventEmitter對象 30
2.1.2 玩轉(zhuǎn)自己的PubSub 31
2.1.3 同步性 32
2.2 事件化模型 34
2.2.1 模型事件的傳播 35
2.2.2 事件循環(huán)與嵌套式變化 36
2.3 jQuery自定義事件 38
2.4 小結(jié) 41
第3章 Promise對象和Deferred對象 43
3.1 Promise極簡史 45
3.2 生成Promise對象 46
3.2.1 生成純Promise對象 48
3.2.2 jQuery API中的Promise對象 50
3.3 向回調(diào)傳遞數(shù)據(jù) 52
3.4 進度通知 53
3.5 Promise對象的合并 55
3.6 管道連接未來 58
3.7 jQuery與Promises/A的對比 62
3.8 用Promise對象代替回調(diào)函數(shù) 63
3.9 小結(jié) 65
第4章 Async.js的工作流控制 67
4.1 異步工作流的次序問題 68
4.2 異步的數(shù)據(jù)收集方法 70
4.2.1 Async.js的函數(shù)式寫法 71
4.2.2 Async.js的錯誤處理技術(shù) 73
4.3 Async.js的任務(wù)組織技術(shù) 75
4.3.1 異步函數(shù)序列的運行 75
4.3.2 異步函數(shù)的并行運行 77
4.4 異步工作流的動態(tài)排隊技術(shù) 78
4.4.1 深入理解隊列 78
4.4.2 任務(wù)的入列 80
4.4.3 完工事件的處理 81
4.4.4 隊列的高級回調(diào)方法 82
4.5 極簡主義者Step的工作流控制 83
4.6 小結(jié) 84
第5章 worker對象的多線程技術(shù) 87
5.1 網(wǎng)頁版worker對象 89
5.1.1 網(wǎng)頁版worker對象的局限性 90
5.1.2 支持網(wǎng)頁版worker的瀏覽器 91
5.2 cluster帶來的Node版worker 92
5.2.1 Node版worker的交互接口 94
5.2.2 Node版worker對象的局限性 95
5.3 小結(jié) 96
第6章 異步的腳本加載 97
6.1 局限性與補充說明 98
62 <script>標(biāo)簽的再認(rèn)識
621 阻塞型腳本何去何從
622 腳本的延遲運行
623 腳本的完全并行化
63 可編程的腳本加載
631 直接加載腳本
632 yepnope 的條件加載
633 Requirejs/AMD 的智能加載
64 小結(jié)
6.2JavaScript異步編程節(jié)選
- PC官方版
- 安卓官方手機版
- IOS官方手機版