請求從發出到接收完成一共經歷了DNS Lookup、Connecting、Blocking、Sending、Waiting和Receiving六個階段,時間共計38ms。請求完成以後是DOM加載和頁面加載。下面簡單解釋下這六個階段:前端
1) DNS Lookup,DNS解析時間。若是頁面存在多個請求主機,頻繁DNS解析將消耗更多的時間。數據庫
2) Connecting,創建一個TCP鏈接所須要的時間,不一樣的瀏覽器使用不一樣的端口下載資源,所以更多的端口等於更多的並行性,而且更多的TCP鏈接時間開銷。瀏覽器
3) Blocking,網頁請求被阻塞,花費在瀏覽器中的等待網絡鏈接的時間;緩存
4) Sending,向服務器發送請求所須要的時間;服務器
5) Waiting,等待服務器響應的時間(直到第一個字節是從服務器收到的),優化服務或鏈接;網絡
6) Receiving,接收服務器響應對象須要的時間;前端優化
2、網站速度建議工具
瞭解了影響網站速度的影響因素,咱們能夠從服務器端、傳輸端和頁面端分別進行網站速度優化。優化
1. 服務器優化網站
服務器優化就是從動態語言執行、數據庫查詢、數據存儲等方面進行優化,這些工做複雜並且關係到網站全局整站運行,所以須要謹慎,固然服務器端優化具體難度和效率取決於網站管理員的水平。因爲沒有操做過公司服務器,所以就不作詳細介紹,僅以我本身的博客服務器端優化爲例說明:
1) 用HTML語言代替PHP語言直接輸出信息,好比語言、名稱、固定URL地址等;
2) 按期進行數據庫修復和優化;
3) 利用Expires爲網頁靜態元素設置過時時間;
4) 設置服務器和頁面緩存;
5) 啓用Gzip壓縮;
6) 其餘有效但未實施的方法:利用CDN技術爲網站提速;縮小Cookie,針對WEB組件使用與域名無關的Cookie;
2. 傳輸優化
傳輸優化是爲了提升數據傳輸速度,減小傳輸過程當中的等待。
1) 字節優化。將頁面加載過程當中傳輸的全部數據壓縮,HTML代碼壓縮、JS壓縮、CSS壓縮、圖片壓縮等。
2) 緩存優化。設置有效的服務器和頁面緩存時間。
3) HTTP優化。A.合併CSS和JS,減小站內CSS和JS的HTTP請求;B.利用CSS Sprites減小圖片HTTP請求;C.減小站外主機DNS查詢;D.避免沒必要要的HTTP和JS跳轉;E.減小404錯誤。
3. 頁面優化
頁面優化主要圍繞網站頁面元素進行,常見的頁面元素有圖片、CSS代碼、JS代碼、HTML代碼等。
1) 圖片優化。選擇合適的圖片類型並壓縮,圖片顏色豐富採用JEG格式;顏色數少或有透明通道適合用PNG格式;LOGO圖片用PNG-8格式或GIF比較適合。
2) CSS代碼優化。去除不使用的CSS代碼;使用簡寫精簡CSS代碼;將CSS代碼經過外部文件加載;CSS連接位置在頁面頂部優先加載。
3) JS代碼優化。將JS代碼經過外部文件加載;優化JS順序,優先加載重要JS;將JS放置在頁面底部。
4) HTML代碼優化。減小注釋信息;去除無用代碼;減小頁面空行。
5) DOM優化:減小DOM個數,下降瀏覽器解析壓力;設置合理的DOM順序,把重要的DOM放前面。
作網站前端優化的朋友通常都知道兩個工具:谷歌的Page Speed和雅虎的Yslow,你們能夠參考這兩個工具的優化建議,在GTmetrix的Breakdown標籤中有具體信息,通過優化以後的網站速度都會有不一樣程度提升,如下是我博客的在谷歌Page Speed和雅虎Yslow的得分,評分是次要的,主要的目的是爲用戶提供良好的用戶體驗。