高性能網站建設進階指南(第二版)

高性能網站建設進階指南(第二版)

《高性能網站建設進階指南(第二版)》是2015年5月電子工業出版社出版的圖書,作者是Steve Souders。

內容簡介

《高性能網站建設進階指南:Web開發者性能最佳化最佳實踐》是《高性能網站建設指南》姊妹篇。作者Steve Souders是前GoogleWeb性能布道者和前Yahoo!首席性能工程師。在《高性能網站建設進階指南:Web開發者性能最佳化最佳實踐》中Souders與8位專家分享了提升網站性能的最佳實踐和實用建議。

內容提要

《高性能網站建設進階指南:Web開發者性能最佳化最佳實踐》是《高性能網站建設指南》姊妹篇。作者Steve Souders是前Google Web性能布道者和前Yahoo!首席性能工程師。在《高性能網站建設進階指南:Web開發者性能最佳化最佳實踐》中Souders與8位專家分享了提升網站性能的最佳實踐和實用建議,主要包括:理解Ajax性能,編寫高效的JavaScript,創建快速回響的應用程式和無阻塞載入腳本,跨域共享資源,無損壓縮圖片大小,使用塊編碼加快網頁渲染,避免或取代iframe的方法,簡化CSS選擇符,以及其他技術。

目錄

致謝 xiii

前言 xv

第1章 理解Ajax性能 1

權衡 1

最佳化原則 2

Ajax 4

瀏覽器 4

哇! 5

JavaScript 6

總結 6

第2章 創建快速回響的Web套用 7

怎樣才算足夠快 9

測量延遲時間 10

當延遲變得很嚴重時 12

執行緒處理 12

確保回響速度 13

Web Workers 14

Gears 14

定時器 16

記憶體使用對回響時間的影響 17

虛擬記憶體 18

記憶體問題的疑難解答 18

總結 19

第3章 拆分初始化負載 21

全部載入 21

通過拆分來節省下載量 22

尋找拆分 23

未定義標識符和競爭狀態 24

個案研究:Google日曆 25

第4章 無阻塞載入腳本 27

腳本阻塞並行下載 27

讓腳本運行得更好 29

XHR Eval 29

XHR注入 31

Script in Iframe 31

Script DOM Element 32

Script Defer 33

document.write Script Tag 33

瀏覽器忙指示器 33

確保(或避免)按順序執行 35

匯總結果 36

最佳方案 38

第5章 整合異步腳本 41

代碼示例:menu.js 42

競爭狀態 44

異步載入腳本時保持執行順序 45

技術1:硬編碼回調 46

技術2:Window Onload 47

技術3:定時器 48

技術4:Script Onload 49

技術5:降級使用script標籤 50

多個外部腳本 52

Managed XHR 52

DOM Element和Doc Write 56

綜合解決方案 59

單個腳本 59

多個腳本 60

現實網際網路中的異步載入 63

Google分析和Dojo 63

YUI Loader 65

第6章 布置行內腳本 69

行內腳本阻塞並行下載 69

把行內腳本移至底部 70

異步啟動執行腳本 71

使用script的defer屬性 73

保持CSS和JavaScript的執行順序 73

風險:把行內腳本放置在樣式表之後 74

大部分下載都不阻塞行內腳本 74

樣式表阻塞行內腳本 75

問題確曾發生 77

第7章 編寫高效的JavaScript 79

管理作用域 79

使用局部變數 81

增長作用域鏈 83

高效的數據存取 85

流控制 88

快速條件判斷 89

快速循環 93

字元串最佳化 99

字元串連線 99

裁剪字元串 100

避免運行時間過長的腳本 102

使用定時器掛起 103

用於掛起的定時器模式 105

總結 107

第8章 可伸縮的Comet 109

Comet工作原理 109

傳輸技術 111

輪詢 111

長輪詢 112

永久幀 113

XHR流 115

傳輸方式的前景 116

跨域 116

在應用程式上的執行效果 118

連線管理 118

測量性能 119

協定 119

總結 120

第9章 超越Gzip壓縮 121

這為什麼很重要 121

問題的根源 123

快速回顧 123

罪魁禍首 123

流行的烏龜竊聽者實例 124

如何幫助這些用戶 124

設計目標:最小化未壓縮檔案的尺寸 125

引導用戶 129

對Gzip的支持進行直接探測 130

第10章 圖像最佳化 133

兩步實現簡單圖像最佳化 134

圖像格式 135

背景 135

不同圖像格式的特性 137

PNG的更多資料 139

自動無損圖像最佳化 141

最佳化PNG格式的圖像 142

剝離JPEG的元數據 143

將GIF轉換成PNG 144

最佳化GIF動畫 144

Smush.it 145

使用漸進JPEG格式來存儲大圖像 145

Alpha透明:避免使用AlphaImageLoader 146

Alpha透明度的效果 147

AlphaImageLoader 149

AlphaImageLoader的問題 150

漸進增強的PNG8 Alpha透明 151

最佳化Sprite 153

超級Sprite VS.模組化Sprite 154

高度最佳化的CSS Sprite 155

其他圖像最佳化方法 155

避免對圖像進行縮放 155

最佳化生成的圖像 156

Favicons 157

Apple觸摸圖示 158

總結 159

第11章 劃分主域 161

關鍵路徑 161

誰在劃分主域 163

降級到HTTP/1.0 165

域劃分的擴展話題 168

IP位址和主機名 168

多少個域 168

如何劃分資源 168

新型瀏覽器 169

第12章 儘早刷新文檔的輸出 171

刷新文檔頭部的輸出 171

輸出緩衝 173

塊編碼 175

刷新輸出和Gzip壓縮 176

其他障礙 177

刷新輸出時的域阻塞 178

瀏覽器:最後的障礙 178

不藉助PHP進行刷新輸出 179

刷新輸出問題清單 180

第13章 少用iframe 181

開銷最高的DOM元素 181

iframe阻塞onload事件 182

使用iframe並行下載 184

腳本位於iframe之前 184

樣式表位於iframe之前 185

樣式表位於iframe之後 186

每個主機名的連線 187

iframe中的連線共享 187

跨標籤頁和視窗的連線共享 188

總結使用iframe的開銷 190

第14章 簡化CSS選擇符 191

選擇符的類型 191

ID選擇符 192

類選擇符 193

類型選擇符 193

相鄰兄弟選擇符 193

子選擇符 193

後代選擇符 193

通配選擇符 194

屬性選擇符 194

偽類和偽元素 194

高效CSS選擇符的關鍵 194

最右邊優先 195

編寫高效的CSS選擇符 195

CSS選擇符性能 197

複雜的選擇符影響性能(有時) 197

應避免使用的CSS選擇符 200

回流時間 201

在現實中測量CSS選擇符 202

附錄A 性能工具 205

索引 221

相關詞條

熱門詞條

聯絡我們