許多研究都表明,用戶最滿意的打開網頁時間,是在2秒以下。用戶能夠忍受的最長等待時間的中位數,在6~8秒之間。這就是說,8秒是一個臨界值,如果你的網站打開速度在8秒以上,那么很可能,大部分訪問者最終都會離你而去。
Google做過一個試驗,顯示10條搜索結果的頁面載入需要0.4秒,顯示30條搜索結果的頁面載入需要0.9秒,結果后者使得Google總的流量和收入減少了20%。
Amazon的統計也顯示了相近的結果,首頁打開時間每增加100毫秒,網站銷售量會減少1%。
由此可見,網頁的打開速度,對於一個站長,尤其是對於營利性網站來說,是多么重要。但是,從輸入網址到網頁全部打開,這段時間內,瀏覽器與服務器之間都發生了什么?時間都消耗在哪里的呢?
雅虎實驗室的研究表明,對於大多數網站來說,只有不到10%-20%的響應時間是消耗在從Web服務器上下載HTML文檔到瀏覽器中的。哪另外的80%到90%的時間,消耗到哪里去了呢?
雅虎的前首席性能專家、著名網頁性能分析YSlow的創建者Steve Souders的《High Performance Web Sites》(國內翻譯為:《高性能網站建設指南》)給大家揭開另外80%-90%的秘密。書中,Souders簡要地提出來關於Web前段性能的十四條黃金法則。如下:
- Make Fewer HTTP Requests(盡量減少HTTP請求)
- Use a Content Delivery Network (使用內容分發網絡(即CDN))。我前面寫過一篇文章,來介紹CDN網絡的使用。請看“使用Microsoft Ajax Content Delivery Network(CDN)優化WordPress加載速度”。
- Add an Expires Header(添加Expires頭)
- Gzip Components (壓縮組件)
- Put Stylesheets at the Top(把CSS放在HTML最上面)
- Put Scripts to the Bottom (把腳本(比如JavaScript)放到HTML最下面)
- Avoid CSS Expressions(避免使用CSS表達式)
- Make JavaScript and CSS External(使用外部的JavaScript和CSS)
- Reduce DNS Lookups (減少DNS查詢次數)
- Minify JavaScript(精簡JavaScript)
- Avoid Redirects (避免重定向)
- Remove Duplicate Scripts(刪除重復代碼)
- Configure ETags (配置ETag)
- Make Ajax Cacheable(使用Ajax緩存)
從十四條黃金法則擴展開來 ,每一條都是一支學習樹,看完了解簡單,一條一條掌握就來日方長了。這十四條黃金法則讓你明白前端優化的准則,自己動手處理的時候有明確目標方向。同時,從這本書里,讓我意識到,除了標准的xHTML/CSS/JavaScript,一個優秀的Web開發工程師還應該具備其他幾種技能:
- 精通瀏覽器工作原理及不同瀏覽器間的差異
- 理解HTTP協議
- 掌握服務器端編程
- 了解網絡環境配置
作為一個開發人員,不能再滿足於能實現,而要向更優的實現進軍。不滿足於言簡意賅的操作指南,而要向對內部原理的融會貫通進軍!所以,我計划針對每一條寫一篇原理介紹以及一個實踐日志。關於CDN的實踐前段時間已經發出來了,請看“使用Microsoft Ajax Content Delivery Network(CDN)優化WordPress加載速度”。
注:
- 十四條黃金法則的翻譯,是我自己翻譯的。本人水平有限,翻譯的難免有些不妥。如果有不正確的地方,請留言指正。謝謝!
參考資料
- 百度百科:內容分發網絡
- 網頁打開速度的心理學
- Google的實驗(需要翻×牆)
- 部分文字參考了一下幾人的書評
特別聲明:
本文章,發表在博客園的同時,也發布到我的個人博客地瓜哥上。轉載請注明作者和原文網址。
地瓜哥:http://www.diguage.com/archives/34.html
博客園:http://www.cnblogs.com/diguage/archive/2012/07/24/2605913.html