首 頁(yè)
手機(jī)版

高性能javascript 尼古拉斯·澤卡斯pdf掃描版

高性能JavaScript是JavaScript語(yǔ)言領(lǐng)域的一本經(jīng)典教材,由雅虎首頁(yè)開(kāi)發(fā)者尼古拉斯·澤卡斯編著。全書(shū)從性能角度分析JavaScript,不求面面俱到,但求字字如金。重點(diǎn)討論了JavaScript的各個(gè)方面,內(nèi)容涵蓋運(yùn)行時(shí)間、下載、dom操作、頁(yè)面生存周期等,另外作者嘗試著從多個(gè)方面綜合分析導(dǎo)致JavaScript性能低下的原因,并給出適合的解決方案,幫助我們改善Web應(yīng)用的品質(zhì),適用于有一定基礎(chǔ)的JavaScript人員學(xué)習(xí)。

內(nèi)容介紹

如果你使用 JavaScript 構(gòu)建交互豐富的 Web 應(yīng)用,那么 JavaScript 代碼可能是造成你的Web應(yīng)用速度變慢的主要原因。本書(shū)揭示的技術(shù)和策略能幫助你在開(kāi)發(fā)過(guò)程中消除性能瓶頸。你將會(huì)了解如何提升各方面的性能,包括代碼的加載、運(yùn)行、DOM 交互、頁(yè)面生存周期等。雅虎的前端工程師 Nicholas C. Zakas 和其他五位 JavaScript 專家介紹了頁(yè)面代碼加載的優(yōu)佳方法和編程技巧,來(lái)幫助你編寫(xiě)更為高效和快速的代碼。你還會(huì)了解到構(gòu)建和部署文件到生產(chǎn)環(huán)境的優(yōu)佳實(shí)踐,以及有助于定位線上問(wèn)題的工具。

高性能javascript章節(jié)目錄

前言I

第1章:加載和執(zhí)行1

1.1腳本位置2

1.2組織腳本4

1.3阻塞的腳本5

1.3.1延遲的腳本5

1.3.2動(dòng)態(tài)腳本元素6

1.3.3XMLHttpRequest腳本注入9

1.3.4推薦的阻塞模式10

1.4小結(jié)14

第2章:數(shù)據(jù)訪問(wèn)15

2.1管理作用域16

2.1.1作用域鏈和標(biāo)識(shí)符解析16

2.1.2標(biāo)識(shí)符解析的性能19

2.1.3改變作用域鏈21

2.1.4動(dòng)態(tài)作用域24

2.1.5閉包,作用域和內(nèi)存24

2.2對(duì)象成員27

2.2.1原型27

2.2.2原型鏈29

2.2.3嵌套成員30

2.2.4緩存對(duì)象成員值31

2.3小結(jié)33

第3章:DOM編程35

3.1瀏覽器中的DOM35

3.1.1天生就慢36

3.2DOM訪問(wèn)與修改36

3.2.1innerHTML對(duì)比DOM方法37

3.2.2節(jié)點(diǎn)克隆41

3.2.3HTML集合42

3.2.4遍歷DOM46

3.3重繪與重排50

3.3.1重排何時(shí)發(fā)生?51

3.3.2渲染樹(shù)變化的排隊(duì)與刷新51

3.3.3最小化重繪和重排52

3.3.4緩存布局信息56

3.3.5讓元素脫離動(dòng)畫(huà)流56

3.3.6IE和:hover57

3.4事件委托57

3.5小結(jié)59

第4章:算法和流程控制61

4.1循環(huán)61

4.1.1循環(huán)的類型61

4.1.2循環(huán)性能63

4.1.3基于函數(shù)的迭代67

4.2條件語(yǔ)句68

4.2.1if-else對(duì)比switch68

4.2.2優(yōu)化if-else70

4.2.3查找表72

4.3遞歸73

4.3.1調(diào)用棧限制74

4.3.2遞歸模式75

4.3.3迭代76

4.3.4Memoization77

4.4小結(jié)79

第5章:字符串和正則表達(dá)式81

5.1字符串連接81

5.1.1加(+)和加等于(+=)操作符82

5.1.2數(shù)組項(xiàng)連接84

5.1.3String.prototype.concat86

5.2正則表達(dá)式優(yōu)化87

5.2.1正則表達(dá)式工作原理88

5.2.2理解回溯89

5.2.3回溯失控91

5.2.4基準(zhǔn)測(cè)試的說(shuō)明96

5.2.5更多提高正則表達(dá)式效率的方法96

5.2.6何時(shí)不使用正則表達(dá)式99

5.3去除字符串首尾空白99

5.3.1使用正則表達(dá)式去首尾空白99

5.3.2不使用正則表達(dá)式去除字符串首尾空白102

5.3.3混合解決方案103

5.4小結(jié)104

第6章:快速響應(yīng)的用戶界面107

6.1瀏覽器UI線程107

6.1.1瀏覽器限制109

6.1.2多久才算“太久”?110

6.2使用定時(shí)器讓出時(shí)間片段111

6.2.1定時(shí)器基礎(chǔ)112

6.2.2定時(shí)器的精度114

6.2.3使用定時(shí)器處理數(shù)組114

6.2.4分割任務(wù)116

6.2.5記錄代碼運(yùn)行時(shí)間118

6.2.6定時(shí)器與性能119

6.3Web Workers120

6.3.1Worker運(yùn)行環(huán)境120

6.3.2與Worker通信121

6.3.3加載外部文件122

6.3.4實(shí)際應(yīng)用122

6.4小結(jié)124

第7章:Ajax125

7.1數(shù)據(jù)傳輸125

7.1.1請(qǐng)求數(shù)據(jù)125

7.1.2發(fā)送數(shù)據(jù)131

7.2數(shù)據(jù)格式134

7.2.1XML134

7.2.2JSON137

7.2.3HTML141

7.2.4自定義格式142

7.2.5數(shù)據(jù)格式總結(jié)144

7.3Ajax性能指南145

7.3.1緩存數(shù)據(jù)145

7.3.2了解Ajax類庫(kù)的局限148

7.4小結(jié)149

第8章:編程實(shí)踐151

8.1避免雙重求值(Double Evaluation)151

8.2使用Object/Array直接量153

8.3不要重復(fù)工作154

8.3.1延遲加載154

8.3.2條件預(yù)加載156

8.4使用速度快的部分156

8.4.1位操作156

8.4.2原生方法159

8.5小結(jié)161

第9章:構(gòu)建并部署高性能JavaScript應(yīng)用163

9.1Apache Ant163

9.2合并多個(gè)JavaScript文件165

9.3預(yù)處理JavaScript文件166

9.4JavaScript壓縮168

9.5構(gòu)建時(shí)處理對(duì)比運(yùn)行時(shí)處理170

9.6JavaScript的HTTP壓縮170

9.7緩存JavaScript文件171

9.8處理緩存問(wèn)題172

9.9使用內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)173

9.10部署JavaScript資源173

9.11敏捷JavaScript構(gòu)建過(guò)程174

9.12小結(jié)175

第10章:工具177

10.1JavaScript性能分析178

10.2YUI Profiler179

10.3匿名函數(shù)182

10.4Firebug183

10.4.1控制臺(tái)面板分析工具183

10.4.2Console API184

10.4.3網(wǎng)絡(luò)面板185

10.5IE開(kāi)發(fā)人員工具186

10.6Safari Web檢查器(Web Inspector)188

10.6.1分析面板189

10.6.2資源面板191

10.7Chrome開(kāi)發(fā)人員工具192

10.8腳本阻塞193

10.9Page Speed194

10.10Fiddler196

10.11YSlow198

10.12dynaTrace Ajax Edition199

10.13小結(jié)202

索引203

使用說(shuō)明

1、下載并解壓,得出pdf文件

2、如果打不開(kāi)本文件,請(qǐng)務(wù)必下載pdf閱讀器

3、安裝后,在打開(kāi)解壓得出的pdf文件

4、雙擊進(jìn)行閱讀

收起介紹展開(kāi)介紹
  • 下載地址
高性能javascript 尼古拉斯·澤卡斯pdf掃描版

有問(wèn)題? 點(diǎn)此報(bào)錯(cuò)

發(fā)表評(píng)論

0條評(píng)論

熱門(mén)推薦