一、網(wǎng)絡優(yōu)化
YSlow有23條規(guī)則,中文可以參考這里。這幾十條規(guī)則最主要是在做消除或減少不必要的網(wǎng)絡延遲,將需要傳輸?shù)臄?shù)據(jù)壓縮至最少。
1)合并壓縮CSS、JavaScript、圖片,靜態(tài)資源CDN緩存
通過構建工具Gulp,可以在開發(fā)的時候就將合并壓縮的事情一起做掉。
之所以要做合并壓縮是因為:HTTP 1.x不允許一個連接上的多個響應數(shù)據(jù)交錯到達(多路復用),因而一個響應必須完全返回后,下一個響應才會開始傳輸。
也就是說即使客戶端同時發(fā)送了兩個請求,而且CSS資源先準備就緒,服務器也會先發(fā)送HTML響應,然后再交付CSS。
使用CDN是為了讓用戶訪問的時候能用最近的資源,減少來回傳輸時間。
HTTP2.0改進了HTTP1.x很多方面。
2)CSS放頂部,JavaScript放底部
CSS可以并行下載,而JavaScript加載之后會造成阻塞。
但凡事還是會有例外,如果把行內腳本放在樣式表之后,會明顯地延遲資源的下載(結果是樣式表下載完成并且行內腳本執(zhí)行完畢時,后續(xù)資源才能開始下載)。
這是因為行內腳本可能含有依賴于樣式表中樣式的代碼,比如