第1章 WebPageTest內部原理 1
1.1 函數攔截 2
1.2 代碼注入 2
1.3 決定瀏覽器架構 3
1.4 獲取代碼 4
1.5 瀏覽器的發展 4
第2章 localStorage讀取性能 5
2.1 基準測試 6
2.2 這是怎麼迴事 6
2.3 優化策略 7
2.4 跟進 8
第3章 內聯不是萬能的 10
3.1 沒有瀏覽器緩存 10
3.2 沒有邊緣緩存 11
3.3 沒有按需加載 12
3.4 瀏覽器預加載失效 13
3.5 不完美的方案:隻在第一次訪問時采用內聯方式 13
3.6 總結和建議 14
第4章 加載異步腳本的藝術 16
4.1 Facebook插件JS SDK 16
4.2 設計原則和標準 18
4.3 代碼片段 18
4.4 插入腳本的其他方案 20
4.5 終於…… 21
4.6 我們遺漏瞭什麼 21
4.7 如果我是代碼片段的使用者 22
4.8 離彆感言:站在巨人的肩膀上 22
第5章 運營商網絡:鑽進兔子洞 24
5.1 多樣化 24
5.2 延遲 25
5.3 編碼變換 25
5.4 這是一座金山 26
5.5 4G也不能拯救我們 26
5.6 我們要去嚮何方 27
5.7 隧道盡頭的光 27
第6章 並行化 29
6.1 介紹:滾下樓梯 29
6.2 目前最佳實踐:繞過 30
6.3 實驗:深入研究 Archive 31
6.4 結果:大量的連續請求序列 32
6.5 推薦:是時候修改協議瞭 32
第7章 自動化網站性能優化 34
第8章 前端單點故障 36
8.1 Business Insider網站 36
8.2 ET網站 37
8.3 O’Reilly Radar網站 39
8.4 引起前端單點故障的原因 40
8.5 避免前端單點故障 41
8.6 行動起來 41
第9章 關於YSlow 43
第10章 高性能原生移動應用 46
10.1 注意你的瀑布流 47
10.2 壓縮這些資源 47
10.3 不要重復下載 48
10.4 太多圖片會減慢你的速度麼 49
10.5 後記 50
第11章 純CSS3圖片?哼,也許晚點再說吧 51
11.1 挑戰 51
11.2 動手寫CSS3 52
11.3 跨瀏覽器效果 52
11.4 基準測試 54
11.4.1 加載成本 55
11.4.2 渲染 55
11.5 達到我們的目標瞭麼 57
11.6 附錄:代碼目錄 57
11.6.1 HTML 57
11.6.2 css 59
第12章 Android中下載無用背景圖片 63
12.1 Android下的問題 63
12.2 無法解決 64
第13章 網絡計時 65
第14章 我對的理解/思考 71
14.1 icy 71
14.2 一些細節 71
14.3 演練 71
14.4 待辦事項 77
14.5 前進道路 80
14.6 我想要的聖誕禮物 80
第15章 使用智能緩存避免機器人性能開銷 81
第16章 導航計時API實踐 84
16.1 為什麼要關心這些 84
16.2 收集導航計時時間戳並將它們轉為有用的度量值 85
16.3 使用Google分析作為性能數據倉庫 85
16.4 Google分析中的性能報告 86
16.5 限製 86
16.6 最後的思考 87
第17章 響應時間對業務的影響 88
第18章 考慮移動界麵的性能 91
18.1 電池壽命 91
18.2 延遲 92
18.3 嵌入CSS和JS:最佳實踐 92
18.4 內存 94
18.4.1 優化圖片 95
18.4.2 權衡CSS的好處 96
18.4.3 GPU的好處及陷阱 96
18.4.4 視口:眼不見,心還是得為它“煩” 97
18.4.5 最小化DOM 97
18.5 UI響應 97
18.6 總結 98
第19章 彆再浪費時間使用Google Analytics的站點速度報告瞭 99
19.1 問題:Firefox中關於Navigation Timing API的一個bug 99
19.2 解決方案:在Google Analytics中濾除Firefox的時間 100
19.3 好消息:這個bug已在Firefox 9中修復 101
19.4 結語 101
第20章 超越Web開發者工具:Strace 102
20.1 其他平颱怎麼辦 102
20.2 開始 103
20.3 校正 103
20.4 示例:本地存儲 103
20.5 我們纔剛觸及皮毛 104
第21章 mod_spdy介紹:Apache Server的SPDY模塊 105
21.1 mod_spdy入門 105
21.2 SPDY和Apache 105
21.3 幫助改進mod_spdy 107
第22章 CommonJS模塊的惰性求值 108
22.1 深入理解Text/JavaScript類型 108
22.2 懶加載 110
22.3 用延遲執行來挽救 110
22.4 在CommonJS模塊中創建懶執行 112
第23章 關於接受建議的建議 114
第24章 為什麼你對性能測試結果的解讀可能是錯誤的(至少你在大公司裏工作) 118
24.1 測試方法 119
24.2 測試結果 119
24.3 結論 120
24.4 為什麼這個問題如此重要 120
24.5 幾個重要的點 120
第25章 有損圖像壓縮 122
第26章 基於Selenium和JavaScript的性能測試 126
26.1 記錄數據 127
26.2 收集和分析數據 128
26.3 示例結果 129
26.4 幫助/益處 130
26.5 結束語 130
26.6 緻謝 131
第27章 一個評估網站性能的簡單方法 132
27.1 概念 132
27.2 優勢 133
27.3 局限 133
27.4 結束語 134
第28章 超越帶寬:UI性能 135
28.1 引言 135
28.2 頁麵加載後:UI層 136
28.3 UI性能分析工具 136
28.4 CSS壓力測試 136
28.5 CSS性能分析器 137
28.6 CSS Lint 137
28.7 DOM Monster 137
28.8 對速度的感知/速度感 138
28.9 花絮 138
28.10 呼籲關注UI性能 139
第29章 CSS Selector性能改變瞭(變得更好瞭) 141
29.1 樣式共享(Style Sharing) 142
29.2 規則哈希(Rule Hashes) 142
29.3 父過濾器(Ancestor filters) 142
29.4 快速路徑(Fast Path) 143
29.5 還有什麼仍然很慢呢 143
第30章 大膽嘗試PhantomJS和confess.js 145
30.1 性能概要 145
30.2 應用程序緩存清單(App Cache Manifest) 147
30.3 發展和完善 148
第31章 兩次測量一次優化 149
31.1 識彆需要優化的頁麵/部分 150
31.2 識彆需要優化的功能 151
31.3 優化 151
第32章 後端問題檢測 153
32.1 適當的後端時間該是多少 154
32.2 搞清楚是怎麼迴事 155
32.3 修復 158
32.4 最後 158
第33章 Web字體性能:@font-face及其他解決方案間的權衡 159
33.1 字體托管服務與自主開發 159
33.1.1 字體托管服務 159
33.1.2 DIY方式 160
33.2 FOUT是什麼 160
33.3 移除多餘的字體字形 161
33.4 JavaScript字體加載器 162
33.5 Boot.getFont介紹:一種快速、小巧的Web字體加載器 163
33.6 Gentlefonts,啓動你的引擎 164
33.7 我的觀察 168
33.8 一些想法 168
· · · · · · (
收起)