高性能JavaScript(簡體書)
商品資訊
ISBN13:9787121266775
出版社:電子工業出版社
作者:(美)尼古拉斯‧澤卡斯
譯者:丁琛
出版日:2020/10/01
裝訂/頁數:平裝/210頁
規格:23.5cm*16.8cm (高/寬)
商品簡介
作者簡介
名人/編輯推薦
目次
商品簡介
如果你使用 JavaScript 構建交互豐富的 Web 應用,那麼 JavaScript 代碼可能是造成你的Web應用速度變慢的主要原因。本書揭示的技術和策略能幫助你在開發過程中消除性能瓶頸。你將會瞭解如何提升各方面的性能,包括代碼的載入、運行、DOM 交互、頁面生存週期等。雅虎的前端工程師 Nicholas C. Zakas 和其他五位元 JavaScript 專家介紹了頁面代碼載入的最佳方法和程式設計技巧,來幫助你編寫更為高效和快速的代碼。你還會瞭解到構建和部署檔到生產環境的最佳實踐,以及有助於定位線上問題的工具。
作者簡介
丁琛,樂豚聯合創始人及CEO,曾在阿裡巴巴負責支付寶,擔任產品前端開發工作,業界著名的前端開發工程師。
名人/編輯推薦
值得所有前端人員細細品讀的經典,來自一線實踐經驗總結,提升JavaScript性能立竿見影
目次
目錄
Contents
前言 I
第1章:加載和執行 1
1.1 腳本位置 2
1.2 組織腳本 4
1.3 無阻塞的腳本 5
1.3.1 延遲的腳本 5
1.3.2 動態腳本元素 6
1.3.3 XMLHttpRequest腳本注入 9
1.3.4 推薦的無阻塞模式 10
1.4 小結 14
第2章:數據訪問 15
2.1 管理作用域 16
2.1.1 作用域鏈和標識符解析 16
2.1.2 標識符解析的性能 19
2.1.3 改變作用域鏈 21
2.1.4 動態作用域 24
2.1.5 閉包,作用域和內存 24
2.2 對象成員 27
2.2.1 原型 27
2.2.2 原型鏈 29
2.2.3 嵌套成員 30
2.2.4 緩存對象成員值 31
2.3 小結 33
第3章:DOM編程 35
3.1 瀏覽器中的DOM 35
3.1.1 天生就慢 36
3.2 DOM訪問與修改 36
3.2.1 innerHTML對比DOM方法 37
3.2.2 節點克隆 41
3.2.3 HTML集合 42
3.2.4 遍歷DOM 46
3.3 重繪與重排 50
3.3.1 重排何時發生? 51
3.3.2 渲染樹變化的排隊與刷新 51
3.3.3 最小化重繪和重排 52
3.3.4 緩存佈局信息 56
3.3.5 讓元素脫離動畫流 56
3.3.6 IE和:hover 57
3.4 事件委託 57
3.5 小結 59
第4章:算法和流程控制 61
4.1 循環 61
4.1.1 循環的類型 61
4.1.2 循環性能 63
4.1.3 基於函數的迭代 67
4.2 條件語句 68
4.2.1 if-else對比switch 68
4.2.2 優化if-else 70
4.2.3 查找表 72
4.3 遞歸 73
4.3.1 調用棧限制 74
4.3.2 遞歸模式 75
4.3.3 迭代 76
4.3.4 Memoization 77
4.4 小結 79
第5章:字符串和正則表達式 81
5.1 字符串連接 81
5.1.1 加(+)和加等於(+=)操作符 82
5.1.2 數組項連接 84
5.1.3 String.prototype.concat 86
5.2 正則表達式優化 87
5.2.1 正則表達式工作原理 88
5.2.2 理解回溯 89
5.2.3 回溯失控 91
5.2.4 基準測試的說明 96
5.2.5 更多提高正則表達式效率的方法 96
5.2.6 何時不使用正則表達式 99
5.3 去除字符串首尾空白 99
5.3.1 使用正則表達式去首尾空白 99
5.3.2 不使用正則表達式去除字符串首尾空白 102
5.3.3 混合解決方案 103
5.4 小結 104
第6章:快速響應的用戶界面 107
6.1 瀏覽器UI線程 107
6.1.1 瀏覽器限制 109
6.1.2 多久才算“太久”? 110
6.2 使用定時器讓出時間片段 111
6.2.1 定時器基礎 112
6.2.2 定時器的精度 114
6.2.3 使用定時器處理數組 114
6.2.4 分割任務 116
6.2.5 記錄代碼運行時間 118
6.2.6 定時器與性能 119
6.3 Web Workers 120
6.3.1 Worker運行環境 120
6.3.2 與Worker通信 121
6.3.3 加載外部文件 122
6.3.4 實際應用 122
6.4 小結 124
第7章:Ajax 125
7.1 數據傳輸 125
7.1.1 請求數據 125
7.1.2 發送數據 131
7.2 數據格式 134
7.2.1 XML 134
7.2.2 JSON 137
7.2.3 HTML 141
7.2.4 自定義格式 142
7.2.5 數據格式總結 144
7.3 Ajax性能指南 145
7.3.1 緩存數據 145
7.3.2 瞭解Ajax類庫的局限 148
7.4 小結 149
第8章:編程實踐 151
8.1 避免雙重求值(Double Evaluation) 151
8.2 使用Object/Array直接量 153
8.3 不要重複工作 154
8.3.1 延遲加載 154
8.3.2 條件預加載 156
8.4 使用速度快的部分 156
8.4.1 位操作 156
8.4.2 原生方法 159
8.5 小結 161
第9章:構建並部署高性能JavaScript應用 163
9.1 Apache Ant 163
9.2 合併多個JavaScript文件 165
9.3 預處理JavaScript文件 166
9.4 JavaScript壓縮 168
9.5 構建時處理對比運行時處理 170
9.6 JavaScript的HTTP壓縮 170
9.7 緩存JavaScript文件 171
9.8 處理緩存問題 172
9.9 使用內容分發網絡(CDN) 173
9.10 部署JavaScript資源 173
9.11 敏捷JavaScript構建過程 174
9.12 小結 175
第10章:工具 177
10.1 JavaScript性能分析 178
10.2 YUI Profiler 179
10.3 匿名函數 182
10.4 Firebug 183
10.4.1 控制台面板分析工具 183
10.4.2 Console API 184
10.4.3 網絡面板 185
10.5 IE開發人員工具 186
10.6 Safari Web檢查器(Web Inspector) 188
10.6.1 分析面板 189
10.6.2 資源面板 191
10.7 Chrome開發人員工具 192
10.8 腳本阻塞 193
10.9 Page Speed 194
10.10 Fiddler 196
10.11 YSlow 198
10.12 dynaTrace Ajax Edition 199
10.13 小結 202
索引 203
Contents
前言 I
第1章:加載和執行 1
1.1 腳本位置 2
1.2 組織腳本 4
1.3 無阻塞的腳本 5
1.3.1 延遲的腳本 5
1.3.2 動態腳本元素 6
1.3.3 XMLHttpRequest腳本注入 9
1.3.4 推薦的無阻塞模式 10
1.4 小結 14
第2章:數據訪問 15
2.1 管理作用域 16
2.1.1 作用域鏈和標識符解析 16
2.1.2 標識符解析的性能 19
2.1.3 改變作用域鏈 21
2.1.4 動態作用域 24
2.1.5 閉包,作用域和內存 24
2.2 對象成員 27
2.2.1 原型 27
2.2.2 原型鏈 29
2.2.3 嵌套成員 30
2.2.4 緩存對象成員值 31
2.3 小結 33
第3章:DOM編程 35
3.1 瀏覽器中的DOM 35
3.1.1 天生就慢 36
3.2 DOM訪問與修改 36
3.2.1 innerHTML對比DOM方法 37
3.2.2 節點克隆 41
3.2.3 HTML集合 42
3.2.4 遍歷DOM 46
3.3 重繪與重排 50
3.3.1 重排何時發生? 51
3.3.2 渲染樹變化的排隊與刷新 51
3.3.3 最小化重繪和重排 52
3.3.4 緩存佈局信息 56
3.3.5 讓元素脫離動畫流 56
3.3.6 IE和:hover 57
3.4 事件委託 57
3.5 小結 59
第4章:算法和流程控制 61
4.1 循環 61
4.1.1 循環的類型 61
4.1.2 循環性能 63
4.1.3 基於函數的迭代 67
4.2 條件語句 68
4.2.1 if-else對比switch 68
4.2.2 優化if-else 70
4.2.3 查找表 72
4.3 遞歸 73
4.3.1 調用棧限制 74
4.3.2 遞歸模式 75
4.3.3 迭代 76
4.3.4 Memoization 77
4.4 小結 79
第5章:字符串和正則表達式 81
5.1 字符串連接 81
5.1.1 加(+)和加等於(+=)操作符 82
5.1.2 數組項連接 84
5.1.3 String.prototype.concat 86
5.2 正則表達式優化 87
5.2.1 正則表達式工作原理 88
5.2.2 理解回溯 89
5.2.3 回溯失控 91
5.2.4 基準測試的說明 96
5.2.5 更多提高正則表達式效率的方法 96
5.2.6 何時不使用正則表達式 99
5.3 去除字符串首尾空白 99
5.3.1 使用正則表達式去首尾空白 99
5.3.2 不使用正則表達式去除字符串首尾空白 102
5.3.3 混合解決方案 103
5.4 小結 104
第6章:快速響應的用戶界面 107
6.1 瀏覽器UI線程 107
6.1.1 瀏覽器限制 109
6.1.2 多久才算“太久”? 110
6.2 使用定時器讓出時間片段 111
6.2.1 定時器基礎 112
6.2.2 定時器的精度 114
6.2.3 使用定時器處理數組 114
6.2.4 分割任務 116
6.2.5 記錄代碼運行時間 118
6.2.6 定時器與性能 119
6.3 Web Workers 120
6.3.1 Worker運行環境 120
6.3.2 與Worker通信 121
6.3.3 加載外部文件 122
6.3.4 實際應用 122
6.4 小結 124
第7章:Ajax 125
7.1 數據傳輸 125
7.1.1 請求數據 125
7.1.2 發送數據 131
7.2 數據格式 134
7.2.1 XML 134
7.2.2 JSON 137
7.2.3 HTML 141
7.2.4 自定義格式 142
7.2.5 數據格式總結 144
7.3 Ajax性能指南 145
7.3.1 緩存數據 145
7.3.2 瞭解Ajax類庫的局限 148
7.4 小結 149
第8章:編程實踐 151
8.1 避免雙重求值(Double Evaluation) 151
8.2 使用Object/Array直接量 153
8.3 不要重複工作 154
8.3.1 延遲加載 154
8.3.2 條件預加載 156
8.4 使用速度快的部分 156
8.4.1 位操作 156
8.4.2 原生方法 159
8.5 小結 161
第9章:構建並部署高性能JavaScript應用 163
9.1 Apache Ant 163
9.2 合併多個JavaScript文件 165
9.3 預處理JavaScript文件 166
9.4 JavaScript壓縮 168
9.5 構建時處理對比運行時處理 170
9.6 JavaScript的HTTP壓縮 170
9.7 緩存JavaScript文件 171
9.8 處理緩存問題 172
9.9 使用內容分發網絡(CDN) 173
9.10 部署JavaScript資源 173
9.11 敏捷JavaScript構建過程 174
9.12 小結 175
第10章:工具 177
10.1 JavaScript性能分析 178
10.2 YUI Profiler 179
10.3 匿名函數 182
10.4 Firebug 183
10.4.1 控制台面板分析工具 183
10.4.2 Console API 184
10.4.3 網絡面板 185
10.5 IE開發人員工具 186
10.6 Safari Web檢查器(Web Inspector) 188
10.6.1 分析面板 189
10.6.2 資源面板 191
10.7 Chrome開發人員工具 192
10.8 腳本阻塞 193
10.9 Page Speed 194
10.10 Fiddler 196
10.11 YSlow 198
10.12 dynaTrace Ajax Edition 199
10.13 小結 202
索引 203
主題書展
更多
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

