靜態資源部署至邊緣節點,依網路拓撲就近回應。Yahoo 實測提速 20%+。
Apache: mod_deflate (2.x) / mod_gzip (1.3)。壓縮 HTML/JS/CSS/JSON/XML,減少 70% 體積。圖片/PDF 勿壓縮。
<link> 放在 <head>,啟用漸進式渲染,避免白屏/閃爍。
JS 阻塞平行下載。放在 </body> 前,或用 defer/async 屬性。
IE 專有、高頻執行 (滑鼠移動皆觸發)。改用一次性表達式或事件處理。
利用瀏覽器快取。首頁少量頁面可內聯並非同步載入外部檔。
資源分佈在 2-4 個域名,平衡 DNS 開銷與平行下載度。
移除註解、空白。工具:UglifyJS, Terser, cssnano。混淆風險較大,壓縮即可。
301/302 延遲文檔輸出。常見:缺尾斜線 /dir → /dir/。用 mod_rewrite 或 DirectorySlash 修正。
模板系統加入腳本管理模組防重複載入。
多伺服器環境預設 ETag (inode/ChangeNumber) 不一致導致 304 失效。建議移除 FileETag None,依 Last-Modified 驗證。
加 Expires/Cache-Control、URL 含時間戳版本參數 &t=timestamp。
PHP flush() 在 </head> 後輸出頭部,瀏覽器提前載入資源。
POST 分兩個 TCP 封包 (Header + Body),GET 單封包。URL < 2000 字元時優先 GET。
拖放、動畫、隱藏內容、摺疊圖片延後載入。工具:YUI Image Loader, YUI Get Utility。
語義化標籤、CSS Grid/Flex 替代表格佈局。目標 < 700 元素 (Yahoo 首頁)。檢測:document.getElementsByTagName('*').length。
靜態資源放 static1.example.org, static2.example.org,主站 www.example.org。限 2-4 域名。
優點:隔離第三方、平行下載。缺點:空頁面也消耗、阻塞 onload、無語意。慎用。
JS 404 會阻塞平行下載並嘗試解析錯誤內容。建立完善監控與預設圖片。
移除非必要、縮短值、設適當 Domain/Path/Expires。
主站 www.example.org 寫 Cookie,靜態放 static.example.org 或獨立域名 (yimg.com, ytimg.com)。代理伺服器拒絕快取帶 Cookie 資源。
快取引用、離線操作節點再掛回、避免 JS 佈局強制回流。
父層綁定單一 Handler 捕獲冒泡事件,識別目標元素。用 DOMContentLoaded 替代 onload 提早執行。
IE 中 @import 等同置底,阻塞渲染。
AlphaImageLoader 阻塞渲染、記憶體洩漏。改用 PNG8 漸變或 Hack 隔離 IE7+。
identify -verboseconvertpngcrush -rem alla -reduce -brutejpegtran -copy none -optimize -perfect直接輸出顯示尺寸圖片,避免下載 500px 顯示 100px。
< 1KB、ICO 格式、設遠期 Expires、根目錄固定名稱。
iPhone 不快取 > 25KB (未壓縮) 元件。Minify + Gzip 雙重保障。
單一 HTTP 請求回應多資源。注意:iPhone 不支援,需檢測 User-Agent。