注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計Web性能實戰(zhàn)

Web性能實戰(zhàn)

Web性能實戰(zhàn)

定 價:¥99.00

作 者: [美] 杰里米·瓦格納(Jeremy Wagner) 著,張俊達(dá) 譯
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115538321 出版時間: 2020-06-01 包裝: 平裝
開本: 16開 頁數(shù): 305 字?jǐn)?shù):  

內(nèi)容簡介

  在Web 變得越來越復(fù)雜的時代,解決Web 性能問題正當(dāng)時。本書旨在幫助讀者創(chuàng)建更加快速的網(wǎng)站,內(nèi)容涵蓋Web 性能的基礎(chǔ)知識、性能評估工具、CSS 優(yōu)化、圖像優(yōu)化、字體優(yōu)化、JavaScript 相關(guān)的內(nèi)容、Brotli 壓縮算法、資源提示、配置緩存策略、HTTP/2,等等。

作者簡介

  杰里米·瓦格納(Jeremy Wagner)Web性能咨詢師、Web前端開發(fā)者,在多家機(jī)構(gòu)和大公司積累了十余年經(jīng)驗。撰寫過大量Web性能方面的圖書和文章,還經(jīng)常在各種Web開發(fā)會議上發(fā)表演講。

圖書目錄

第1 章 理解Web 性能    1
1.1 理解Web 性能    1
1.1.1 Web 性能和用戶體驗    1
1.1.2 Web 瀏覽器如何與Web 服務(wù)器通信    2
1.1.3 Web 頁面如何加載    4
1.2 上手準(zhǔn)備    5
1.2.1 安裝Node.js 和Git    6
1.2.2 下載并運行客戶的網(wǎng)站    6
1.2.3 模擬網(wǎng)絡(luò)連接    7
1.3 檢查客戶網(wǎng)站    8
1.4 優(yōu)化客戶網(wǎng)站    10
1.4.1 縮小資源    11
1.4.2 使用服務(wù)器壓縮    13
1.4.3 壓縮圖像    16
1.5 最終性能測試    18
1.6 小結(jié)    19
第2 章 使用評估工具    20
2.1 使用Google PageSpeed Insights 進(jìn)行評估   20
2.1.1 評估網(wǎng)站性能    20
2.1.2 使用Google Analytics 進(jìn)行批量報告    23
2.2 使用基于瀏覽器的評估工具    24
2.3 檢查網(wǎng)絡(luò)請求    25
2.3.1 查看計時信息    25
2.3.2 查看HTTP 請求和響應(yīng)頭    27
2.4 渲染性能檢查工具    29
2.4.1 理解瀏覽器如何渲染網(wǎng)頁    29
2.4.2 使用Google Chrome 的Performance 面板    30
2.4.3 識別問題事件:jank 是元兇    32
2.4.4 用JavaScript 在時間線中標(biāo)記點    37
2.4.5 其他瀏覽器中的渲染分析器    38
2.5 在Chrome 中對JavaScript 進(jìn)行基準(zhǔn)測試    39
2.6 模擬和監(jiān)控設(shè)備    40
2.6.1 在桌面Web 瀏覽器中模擬設(shè)備    41
2.6.2 在Android 設(shè)備上遠(yuǎn)程調(diào)試網(wǎng)站    42
2.6.3 在iOS 設(shè)備上遠(yuǎn)程調(diào)試網(wǎng)站    43
2.7 創(chuàng)建自定義網(wǎng)絡(luò)節(jié)流配置    44
2.8 小結(jié)    45
第3 章 優(yōu)化CSS    47
3.1 直入主題,保持DRY    47
3.1.1 簡寫CSS    47
3.1.2 使用CSS 淺選擇器    50
3.1.3 挑選淺選擇器    51
3.1.4 LESS 和SASS 預(yù)編譯器:簡單就是美    52
3.1.5 不要重復(fù)自己    53
3.1.6 實現(xiàn)DRY    53
3.1.7 使用csscss 查找冗余    54
3.1.8 分割CSS    56
3.1.9 自定義框架下載    57
3.2 移動優(yōu)先即用戶優(yōu)先    58
3.2.1 移動優(yōu)先與桌面優(yōu)先    58
3.2.2 Mobilegeddon 算法    61
3.2.3 使用Google 的移動友好指南    62
3.2.4 驗證網(wǎng)站的移動友好性    63
3.3 對CSS 進(jìn)行性能調(diào)整    63
3.3.1 避免使用 @import 聲明    63
3.3.2 @import 串行請求    64
3.3.3 并行請求    64
3.3.4 在中放置CSS    65
3.3.5 防止無樣式內(nèi)容閃爍    65
3.3.6 提高渲染速度    66
3.3.7 使用更快的選擇器    66
3.3.8 構(gòu)建和運行基準(zhǔn)測試    67
3.3.9 檢查基準(zhǔn)測試結(jié)果    68
3.3.10 盡可能使用flexbox    69
3.3.11 對比盒子模型和flexbox 樣式    69
3.3.12 檢查基準(zhǔn)測試結(jié)果    70
3.4 使用CSS 過渡    71
3.4.1 使用CSS 過渡    71
3.4.2 觀察CSS 過渡性能    73
3.4.3 使用will-change 屬性優(yōu)化過渡    74
3.5 小結(jié)    75
第4 章 理解關(guān)鍵CSS    76
4.1 關(guān)鍵CSS 及其解決的問題    76
4.1.1 理解折疊    76
4.1.2 理解渲染阻塞    77
4.2 關(guān)鍵CSS 的原理    78
4.2.1 加載首屏樣式    79
4.2.2 加載首屏以外內(nèi)容的樣式    79
4.3 實現(xiàn)關(guān)鍵CSS    80
4.3.1 配置并運行菜譜網(wǎng)站    81
4.3.2 識別和分離首屏CSS    82
4.3.3 加載首屏以外內(nèi)容的CSS    88
4.4 權(quán)衡收益    89
4.5 提升可維護(hù)性    91
4.6 多頁網(wǎng)站的注意事項    91
4.7 小結(jié)    92
第5 章 響應(yīng)式圖像    94
5.1 為什么要考慮圖像傳輸    94
5.2 理解圖像類型及其應(yīng)用    96
5.2.1 使用光柵圖像    96
5.2.2 使用SVG 圖像    99
5.2.3 選擇圖像格式    100
5.3 CSS 中的圖像傳輸    101
5.3.1 使用媒體查詢在CSS 中適配顯示器    101
5.3.2 通過媒體查詢適配高DPI 顯示器    104
5.3.3 在CSS 中使用SVG 背景圖像    106
5.4 在HTML 中傳輸圖像    106
5.4.1 圖像的全局max-width規(guī)則    107
5.4.2 使用srcset    107
5.4.3 使用元素    110
5.4.4 使用Picturefill 提供polyfill支持    114
5.4.5 在HTML 中使用SVG    116
5.5 小結(jié)    117
第6 章 圖像的進(jìn)一步處理   118
6.1 使用圖像雪碧圖    118
6.1.1 準(zhǔn)備工作    119
6.1.2 生成雪碧圖    119
6.1.3 使用生成的雪碧圖    121
6.1.4 使用雪碧圖時的考量    122
6.1.5 使用Grumpicon 回退到光柵圖像雪碧圖    123
6.2 縮小圖像    124
6.2.1 使用imagemin 優(yōu)化光柵圖像    125
6.2.2 優(yōu)化SVG 圖像    129
6.3 使用WebP 編碼圖像    131
6.3.1 使用imagemin 編碼有損WebP 圖像    132
6.3.2 使用imagemin 編碼無損WebP 圖像    133
6.3.3 支持不支持WebP 的瀏覽器    134
6.4 懶加載圖像    136
6.4.1 配置標(biāo)記    137
6.4.2 編寫懶加載程序    138
6.4.3 考慮不支持JavaScript 的用戶    144
6.5 小結(jié)    146
第7 章 更快的字體    148
7.1 明智地使用字體    149
7.1.1 選擇字體和字體變體    149
7.1.2 構(gòu)建你自己的@font-face級聯(lián)    151
7.2 壓縮EOT 和TTF 字體格式    154
7.3 取字體子集    156
7.3.1 手動生成字體子集    156
7.3.2 使用unicode-range 屬性傳輸字體子集    160
7.4 優(yōu)化字體加載    166
7.4.1 理解字體加載的問題    166
7.4.2 使用CSS font-display屬性    168
7.4.3 使用字體加載API    169
7.4.4 使用Font Face Observer作為回退    173
7.5 小結(jié)    175
第8 章 保持JavaScript 的簡潔與快速    176
8.1 影響腳本加載行為    176
8.1.1 合理放置script元素    177
8.1.2 使用異步腳本加載    178
8.1.3 使用async    178
8.1.4 在多腳本加載中可靠地使用async    180
8.2 使用更簡潔的兼容jQuery 的替代方案   182
8.2.1 比較替代方案    182
8.2.2 探索競品    182
8.2.3 比較大小    182
8.2.4 比較性能    183
8.2.5 實現(xiàn)替代方案    185
8.2.6 使用Zepto    185
8.2.7 理解使用Shoestring 或Sprint的注意事項    185
8.3 脫離jQuery 編碼    186
8.3.1 檢查DOM 是否準(zhǔn)備就緒    186
8.3.2 選擇元素并綁定事件    187
8.3.3 使用classList 操作元素上的類    188
8.3.4 讀取和修改元素屬性與內(nèi)容    189
8.3.5 使用Fetch API 發(fā)起AJAX請求    192
8.3.6 使用Fetch API    192
8.3.7 Fetch API 的polyfill    193
8.4 使用requestAnimationFrame設(shè)置動畫    194
8.4.1 requestAnimationFrame一覽    194
8.4.2 計時器函數(shù)驅(qū)動的動畫和requestAnimationFrame    194
8.4.3 比較性能    195
8.4.4 實現(xiàn)requestAnimationFrame   196
8.4.5 了解Velocity.js    198
8.5 小結(jié)    199
第9 章 使用Service Worker 提升性能    200
9.1 何為Service Worker    200
9.2 編寫第一個Service Worker    202
9.2.1 安裝Service Worker    203
9.2.2 注冊Service Worker    203
9.2.3 攔截并緩存網(wǎng)絡(luò)請求    207
9.2.4 衡量性能收益    209
9.2.5 優(yōu)化網(wǎng)絡(luò)請求的攔截行為    209
9.3 更新Service Worker    212
9.3.1 文件版本控制    212
9.3.2 清理舊緩存    214
9.4 小結(jié)    215
第10 章 微調(diào)資源傳輸    217
10.1 壓縮資源    217
10.1.1 遵循壓縮指導(dǎo)原則    218
10.1.2 使用Brotli 壓縮    221
10.2 緩存資源    225
10.2.1 理解緩存    225
10.2.2 制定最佳緩存策略    230
10.2.3 使緩存資源失效    233
10.3 使用CDN 資源    234
10.3.1 使用CDN 托管資源   234
10.3.2 CDN 發(fā)生故障怎么辦    236
10.3.3 使用子資源完整性驗證CDN 資源    237
10.4 使用資源提示    239
10.4.1 使用preconnect 資源提示    239
10.4.2 使用prefetch 和preload資源提示    241
10.5 小結(jié)    243
第11 章 HTTP/2 未來展望    245
11.1 理解HTTP/2 的必要性    245
11.1.1 理解HTTP/1 中的問題    246
11.1.2 通過HTTP/2 解決常見的HTTP/1 問題    248
11.1.3 在Node 中編寫一個簡單的HTTP/2 服務(wù)器    251
11.1.4 觀察收益    253
11.2 探索HTTP/2 對應(yīng)的優(yōu)化技術(shù)變化    255
11.2.1 資源粒度與緩存效率    255
11.2.2 識別HTTP/2 的性能反模式    256
11.3 使用服務(wù)器推送搶先發(fā)送資源    257
11.3.1 理解服務(wù)器推送及其工作原理    258
11.3.2 使用服務(wù)器推送    258
11.3.3 測量服務(wù)器推送性能    261
11.4 同時優(yōu)化HTTP/1 和HTTP/2    262
11.4.1 HTTP/2 服務(wù)器如何處理不支持HTTP/2 的瀏覽器    262
11.4.2 劃分用戶    263
11.4.3 根據(jù)瀏覽器功能提供資源    264
11.5 小結(jié)    269
第12 章 使用gulp 自動化優(yōu)化任務(wù)    270
12.1 關(guān)于gulp    270
12.1.1 為什么要使用構(gòu)建系統(tǒng)    271
12.1.2 gulp 的工作原理    272
12.2 奠定基礎(chǔ)    273
12.2.1 組織項目文件夾    273
12.2.2 安裝gulp 及其插件    274
12.3 編寫gulp 任務(wù)    277
12.3.1 剖析gulp 任務(wù)    277
12.3.2 編寫核心任務(wù)    279
12.3.3 編寫實用程序任務(wù)    285
12.4 深入理解gulp 插件    288
12.5 小結(jié)    289
附錄A 工具參考    290
附錄B 常用jQuery 功能的原生等價實現(xiàn)    295

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號