關於網站效能優化準則
這幾日拜讀了Steve Souders的《高效能網站建設指南這本書》,雖然這本書可能已經有些老了,但薄薄的一個小冊子裡提出的網站效能優化的準則還是非常有價值的。這些規則都有個共同點,就是用很小的工作就能獲得很明顯的效能提升,價效比極高。廢話不多說了,總結一下書裡的幾點效能優化規則。
首先有一點需要說明的是書中所寫的效能黃金法則:只有10%~20%的響應時間花在了下載HTML文件上,其餘的80%~90%時間花在了下載頁面的所有元件上。
這也是後面這些效能規則由來的核心。
規則一:減少HTTP請求。這本書的規則順序是按照其重要性來排名的,減少HTTP請求作為第一個規則,足見其重要性。根據黃金法則,減少元件數量從而減少HTTP請求是最有效的效能優化方式,其中有幾項技術值得提一下:
-
CSS Sprites。應該前端人都比較熟悉了,把圖片整合到一個大圖裡,利用background-position來定位。
-
data:URL。值得一說把圖片變為內聯的,減少了圖片請求,webpack裡圖片小於8kb就會轉為base64的data:URL。
-
合併指令碼和CSS。
規則二:使用CDN。這個規則不用多說,分發內容使之更靠近終端使用者,減少了請求時間。
規則三:新增Expires頭。善用快取,給長久不變的內容元件設定有效期較久的Expires頭。
規則四:壓縮元件。利用gzip等內容編碼對文件或元件進行壓縮,通常能將相應資料量減少70%左右。
規則五:將樣式表放在頂部。頁面在開啟工程中逐步呈現,使用者會覺得頁面快一些,也讓使用者在等待過程中有一個良好的反饋。把CSS放在底部的話有可能出現白屏現象。
規則六:將指令碼放在底部。頁面下載指令碼時會阻止其他內容下載與呈現,以防止瀏覽器的重繪重排。所以把指令碼放在頁面的底部不會阻止頁面內容的呈現,而且頁面一些視覺化元件可以儘早下載而不被阻塞。
規則七:避免使用CSS表示式。CSS表示式會進行頻繁的求值,導致了效能低下。
規則八:使用外部JavaScript和CSS。純粹而言,內聯更快一些,因為滿足了規則一的減少HTTP請求,但是這個問題上,一定要考慮快取帶來的效能優化,外部檔案很有可能被快取下來,從而提升了效能。
規則九:減少DNS查詢。善用DNS快取,比如持久連線。
規則十:精簡JavaScript。移除不必要的字元空格,我們常見的.min.js就是如此。
規則十一:避免重定向。3xx的響應狀態碼代表著一股重定向的響應。其中URL結尾缺少斜線造成的重定向需要特別注意,不要因為這一點失誤損傷效能。
規則十二:刪除重複指令碼。
規則十三:配置ETag。說起這個不得不說條件請求If-Modified-Since和If-None-Match,都是用來進行快取再驗證。ETag的問題是伺服器構造ETag時,儘管兩個檔案完全一樣,但如果處於不同的伺服器的話還是會有不同的ETag,增加了HTTP進行請求下載的次數,這對於後臺是伺服器叢集的網站效能損傷很大。
規則十四:使Ajax可快取。雖然Ajax是非同步的,但也不能讓等待響應的時間過長。優化準則的話參見上面的效能準則,其中善用快取依然是我們重點關注的。
書最後用這些準則分析了美國十大網站,發現有效利用這些規則效能有很大的提升空間,我也看了一下自己實習時候專案,發現可優化的地方非常多。以後的開發過程中要謹記這些準則,讓自己產品的使用者獲得更好的體驗。
相關文章
- 網站效能優化網站優化
- 效能調優的通用準則
- 淺談網站效能之前端效能優化網站前端優化
- 網站效能優化實戰(二)網站優化
- 效能優化之關於畫素管道及優化(二)優化
- 聊聊關於效能優化和其他(一)優化
- 網站效能優化:雅虎35條軍規及其可測的23條規則網站優化
- IIS網站伺服器效能優化攻略網站伺服器優化
- 提高網站訪問效能之Tomcat優化網站Tomcat優化
- 網站效能優化的三重境界網站優化
- 淺談網頁基本效能優化規則小結網頁優化
- 雅虎網站效能優化的34條軍規!網站優化
- [譯] 提高 10 倍效能:優化靜態網站優化網站
- Web 效能優化:21 種優化 CSS 和加快網站速度的方法Web優化CSS網站
- [譯]Web 效能優化: 圖片優化讓網站大小減少 62%Web優化網站
- 關於效能優化的一些實踐優化
- 網站效能優化從入門到粗通(PHP 篇)網站優化PHP
- 【譯】Web 效能優化:21種優化CSS和加快網站速度的方法Web優化CSS網站
- iOS效能優化系列篇之“優化總體原則”iOS優化
- 效能優化指南:效能優化的一般性原則與方法優化
- 網頁效能優化網頁優化
- ios效能優化相關iOS優化
- React效能優化:PureComponent的使用原則React優化
- 網站如何優化網站優化
- 網站效能最佳化網站
- 優化SOLIDWORKS的工作站效能優化Solid
- 關於入侵網站網站
- 網站優化(一)——從何處著手開啟網站優化?網站優化
- 關於Swagger優化Swagger優化
- 網站進行SEO搜尋引擎優化的七條規則網站優化
- 六個網站關鍵詞優化注意事項網站優化
- 關於使用sklearn進行資料預處理 —— 歸一化/標準化/正則化
- DNS與網站優化DNS網站優化
- 網站SEO優化效果不好?你藉助長尾關鍵詞優化嗎?網站優化
- 網站技術架構與效能優化,附高效能思維導圖網站架構優化
- 帶你詳細解讀十條關於SQL效能優化!SQL優化
- SEO分析與關鍵詞優化到網站流量提升優化網站
- 關於首屏優化優化
- 關於mysql的優化MySql優化