張成文(ouvenzhang),2014年畢業(yè)于華中科技大學(xué),前騰訊IMWeb團(tuán)隊(duì)前端工程師。在前端技術(shù)領(lǐng)域具有極高的職業(yè)能力和探究精神。對響應(yīng)式設(shè)計(jì)、工程構(gòu)建組件化、MV*設(shè)計(jì)實(shí)現(xiàn)、前端優(yōu)化、ES6體系開發(fā)、前端數(shù)據(jù)分析、前后端同構(gòu)和前端新領(lǐng)域等均有較深入的研究與實(shí)踐經(jīng)驗(yàn)。
第1章 Web前端技術(shù)基礎(chǔ) 1
1.1 現(xiàn)代Web前端技術(shù)發(fā)展概述 1
1.1.1 現(xiàn)代Web前端技術(shù)應(yīng)用 1
1.1.2 現(xiàn)代Web前端技術(shù)概述 4
1.1.3 Web前端技術(shù)發(fā)展 6
1.2 瀏覽器應(yīng)用基礎(chǔ) 10
1.2.1 瀏覽器組成結(jié)構(gòu) 10
1.2.2 瀏覽器渲染引擎簡介 12
1.2.3 瀏覽器數(shù)據(jù)持久化存儲技術(shù) 20
1.3 前端高效開發(fā)技術(shù) 34
1.3.1 前端高效開發(fā)工具 34
1.3.2 前端高效調(diào)試工具 36
1.4 本章小結(jié) 42
第2章 前端與協(xié)議 43
2.1 HTTP協(xié)議簡介 43
2.1.1 HTTP協(xié)議概述 43
2.1.2 HTTP 1.1 45
2.1.3 HTTP 2 51
2.2 web安全機(jī)制 53
2.2.1 基礎(chǔ)安全知識 53
2.2.2 請求劫持與HTTPS 57
2.2.3 HTTPS協(xié)議通信過程 59
2.2.4 HTTPS協(xié)議解析 61
2.2.5 瀏覽器Web安全控制 63
2.3 前端實(shí)時(shí)協(xié)議 64
2.3.1 WebSocket通信機(jī)制 65
2.3.2 Poll和Long-poll 66
2.3.3 前端DDP協(xié)議 70
2.4 RESTful數(shù)據(jù)協(xié)議規(guī)范 71
2.5 與Native交互協(xié)議 73
2.5.1 Hybrid App應(yīng)用概述 74
2.5.2 Web到Native協(xié)議調(diào)用 74
2.5.3 Native到Web協(xié)議調(diào)用 77
2.5.4 JSBridge設(shè)計(jì)規(guī)范 78
2.6 本章小結(jié) 81
第3章 前端三層結(jié)構(gòu)與應(yīng)用 82
3.1 HTML結(jié)構(gòu)層基礎(chǔ) 83
3.1.1 必須要知道的DOCTYPE 83
3.1.2 Web語義化標(biāo)簽 84
3.1.3 HTML糟糕的部分 87
3.1.4 AMP HTML 90
3.2 前端結(jié)構(gòu)層演進(jìn) 94
3.2.1 XML與HTML簡述 94
3.2.2 HTML5標(biāo)準(zhǔn) 95
3.2.3 HTML Web Component 96
3.3 瀏覽器腳本演進(jìn)歷史 102
3.3.1 CoffeeScript時(shí)代 103
3.3.2 ECMAScript標(biāo)準(zhǔn)概述 105
3.3.3 TypeScript概況 105
3.3.4 JavaScript衍生腳本 106
3.4 JavaScript標(biāo)準(zhǔn)實(shí)踐 107
3.4.1 ECMAScript 5 107
3.4.2 ECMAScript 6 113
3.4.3 ECMAScript 7+ 128
3.4.4 TypeScript 130
3.5 前端表現(xiàn)層基礎(chǔ) 131
3.5.1 CSS發(fā)展概述 131
3.5.2 CSS選擇器與屬性 132
3.5.3 簡單的應(yīng)用舉例 133
3.6 前端界面技術(shù) 135
3.6.1 CSS樣式統(tǒng)一化 136
3.6.2 CSS預(yù)處理 138
3.6.3 表現(xiàn)層動畫實(shí)現(xiàn) 141
3.6.4 CSS4與展望 149
3.7 響應(yīng)式網(wǎng)站開發(fā)技術(shù) 149
3.7.1 響應(yīng)式頁面實(shí)現(xiàn)概述 149
3.7.2 結(jié)構(gòu)層響應(yīng)式 152
3.7.3 表現(xiàn)層響應(yīng)式 160
3.7.4 行為層響應(yīng)式 166
3.8 本章小結(jié) 167
第4章 現(xiàn)代前端交互框架 168
4.1 直接DOM操作時(shí)代 168
4.2 MV*交互模式 176
4.2.1 前端MVC模式 176
4.2.2 前端MVP模式 180
4.2.3 前端MVVM模式 181
4.2.4 數(shù)據(jù)變更檢測示例 185
4.3 Virtual DOM交互模式 193
4.3.1 Virtual DOM設(shè)計(jì)理念 193
4.3.2 Virtual DOM的核心實(shí)現(xiàn) 196
4.4 前端MNV*時(shí)代 200
4.4.1 MNV*模式簡介 201
4.4.2 MNV*模式實(shí)現(xiàn)原理 201
4.5 本章小結(jié) 203
第5章 前端項(xiàng)目與技術(shù)實(shí)踐 204
5.1 前端開發(fā)規(guī)范 204
5.1.1 前端通用規(guī)范 205
5.1.2 前端HTML規(guī)范 208
5.1.3 前端CSS規(guī)范 212
5.1.4 ECMAScript 5常用規(guī)范 218
5.1.5 ECMAScript 6+ 參考規(guī)范 222
5.1.6 前端防御性編程規(guī)范 227
5.2 前端組件規(guī)范 229
5.2.1 UI組件規(guī)范 230
5.2.2 模塊化規(guī)范 233
5.2.3 項(xiàng)目組件化設(shè)計(jì)規(guī)范 237
5.3 自動化構(gòu)建 242
5.3.1 自動化構(gòu)建的目的 243
5.3.2 自動化構(gòu)建原理 243
5.3.3 構(gòu)建工具設(shè)計(jì)的問題 246
5.4 前端性能優(yōu)化 248
5.4.1 前端性能測試 248
5.4.2 桌面瀏覽器前端優(yōu)化策略 253
5.4.3 移動端瀏覽器前端優(yōu)化策略 258
5.5 前端用戶數(shù)據(jù)分析 266
5.5.1 用戶訪問統(tǒng)計(jì) 266
5.5.2 用戶行為分析 267
5.5.3 前端日志上報(bào) 270
5.5.4 前端性能分析上報(bào) 275
5.6 前端搜索引擎優(yōu)化基礎(chǔ) 275
5.6.1 title、keywords、description的優(yōu)化 275
5.6.2 語義化標(biāo)簽的優(yōu)化 277
5.6.3 URL規(guī)范化 278
5.6.4 robots 279
5.6.5 sitemap 279
5.7 前端協(xié)作 280
5.7.1 溝通能力和溝通技巧 280
5.7.2 與產(chǎn)品經(jīng)理的“對抗” 281
5.7.3 與后臺工程師的合作 281
5.7.4 與運(yùn)維工程師的“周旋” 282
5.7.5 對前端團(tuán)隊(duì)的支持 282
5.8 本章小結(jié) 283
第6章 前端跨棧技術(shù) 284
6.1 JavaScript跨后端實(shí)現(xiàn)技術(shù) 284
6.1.1 Node后端開發(fā)基礎(chǔ)概述 285
6.1.2 早期MEAN簡介 288
6.1.3 Node后端數(shù)據(jù)渲染 289
6.1.4 前后端同構(gòu)概述 290
6.1.5 前后端同構(gòu)實(shí)現(xiàn)原理 291
6.2 跨終端設(shè)計(jì)與實(shí)現(xiàn) 297
6.2.1 Hybrid技術(shù)趨勢 297
6.2.2 Hybrid實(shí)現(xiàn)方式 299
6.2.3 基于localStorage的資源離線和更新技術(shù) 301
6.2.4 基于Native與Web的資源離線和更新技術(shù) 308
6.2.5 資源覆蓋率統(tǒng)計(jì) 310
6.2.6 仍需要注意的問題 311
6.3 本章小結(jié) 312
第7章 未來前端時(shí)代 313
7.1 未來前端趨勢 314
7.1.1 新標(biāo)準(zhǔn)的進(jìn)化與穩(wěn)定 314
7.1.2 應(yīng)用開發(fā)技術(shù)趨于穩(wěn)定并將等待下一次革新 314
7.1.3 持續(xù)不斷的技術(shù)工具探索 315
7.1.4 瀏覽器平臺新特性的應(yīng)用 315
7.1.5 更優(yōu)化的前端技術(shù)開發(fā)生態(tài) 315
7.1.6 前端新領(lǐng)域的出現(xiàn) 316
7.2 做一名優(yōu)秀的前端工程師 318
7.2.1 學(xué)會高效溝通 318
7.2.2 使用高效的開發(fā)工具 319
7.2.3 處理問題方法論 319
7.2.4 學(xué)會前端項(xiàng)目開發(fā)流程設(shè)計(jì) 320
7.2.5 持續(xù)的知識和經(jīng)驗(yàn)積累管理 321
7.2.6 切忌過分追求技術(shù) 321
7.2.7 必要的產(chǎn)品設(shè)計(jì)思維 322
7.3 本章小結(jié) 323