如何分析並最佳化網頁效能?
一個網站的網頁是好是壞,往往是體現在速度和高度兩個方面,速度是網頁所展示出來的時間,能否為瀏覽使用者節約時間。高度則是一個網站網頁本身的質量,能否為瀏覽使用者帶來真正的好體驗。然而看似簡單的兩個點,但是背後要實現起來是需要花費精力和時間的。任何網站的終極目標不僅僅是讓其執行很快,而是讓使用該網站的使用者滿意。使用者花在網站上的大多數時間不是等待載入,而是在使用過程中等待響應。
一個網頁開啟速度慢,圖片載入慢,瀏覽卡頓,頁面的動畫效果不流暢,或者突然崩壞等,這種網站無疑在使用者心裡就是“垃圾網站”。作為一個網站開發者,誰願意看到這種情況?所以提高網頁效能勢在必行!
第一,要對頁面效能進行分析,那麼首要了解瀏覽器載入的過程,主要包括連線和渲染。
1、建立連線過程
1) 瀏覽器域名的IP地址
2) 瀏覽器給web伺服器傳送一個HTTP請求
3) 伺服器傳送永久重定向響應
4) 瀏覽器跟蹤重定向地址
5) 伺服器“處理”請求
6) 伺服器發回一個HTML響應
2、瀏覽器渲染
解析HTML->構建DOM樹->渲染樹構建->渲染樹佈局->繪製渲染樹
第二,最佳化網頁效能的大概方法
1、開啟瀏覽器快取
瀏覽器要根據域名找出I P ,而DNS過程的第一步是在瀏覽器快取中查詢,根據Chrome的PageSpeed給出的建議:要利用瀏覽器快取儲存可快取的資源。在 HTTP 標頭中為靜態資源設定有效期或最長存在時間,可指示瀏覽器從本地磁碟中載入以前下載的資源而不是從網路中載入。
HTTP 1.1提供的快取方法主要有兩種:
1) Expires和Cache-Control:max-age.即內容在快取中的生命有效期。第一次請求後將在生命有效期之內直接從本地快取中拿取。
2) Last-Modified和ETag.:Last-Modified標記檔案最後一次修改的時間,瀏覽器請求是在頭部加入上次請求快取下來的Last-Modified時間,若兩次請求期間伺服器的內容沒有修改,伺服器返回304 Not Modified,則不下載資源,瀏覽器直接使用本地快取;否則,伺服器會返回200以及更新後的版本。ETag是伺服器對於檔案生成的Hash雜湊,其生成演算法與最後一次修改的時間相關。瀏覽器第二次請求傳送上次的ETag資訊,伺服器透過簡單的比對就知道是否應該返回304還是200。PageSpeed建議,要為資源指定Last-Modified或ETag標頭,以便啟動快取驗證。
2、頁面內容組織
1)為 HTML文件指定字符集,可讓瀏覽器立即開始執行指令碼。
2)將內嵌樣式塊和元素從文件主體移至文件標題,可改善顯示效能。
3)將小型樣式表或者指令碼內嵌到主 HTML 網頁中,可減少在下載其他資源時的往返時間 (RTT) 和延遲時間。
3、HTML
1)壓縮HTML。
2)為圖片指定大小,減少重排。
3)減少HTML標籤巢狀深度,巢狀越深,在移動端的Web頁面渲染速度以及滾動流暢度都會有所減低。
4)使用HTML5新標籤,例如header、footer、section、nav、article。因為它們語義化,速度快,結構合理,瀏覽器上識別能力強。
4、CSS
1)避免使用濾鏡。
2)不使用@import。
3)合併和壓縮CSS程式碼。
4)減少漸變、陰影的使用。
5)模組化、精簡css,提高複用率。
6)合理使用CSS3高效能動畫,Translate3d支援硬體加速。
7)使用CssSprite將零星的背景圖包含到一張圖中,透過background-position來使它顯示在正確的位置;只請求一張圖,減少了HTTP請求的次數。
5、Java
1)模組化程式碼:SeaJs。
2)合併和壓縮Java程式碼。
3)壓縮工具:YUI Compressor或JSMin等。
4)使用事件委託機制,避免頻繁操作DOM節點。
5)暫緩 Java 解析,暫緩解析不需要的 Java(等到需要執行時再進行解析),可以提高網頁的初始載入速度。
6、 圖片最佳化
1)壓縮圖片
2)圖片時頁面大部分載入時間所花的地方,在圖片設計的時候應該考慮相應的圖片大小和格式
第三,網頁效能最佳化實戰分析
以Chrome Developer Tools作為示例工具講解(可透過F12鍵開啟),目前各大主流瀏覽器都有類似的外掛功能。
1、 Network可以檢視頁面載入時長,資源載入情況(狀態、時長),資源載入時間具體分析,從而針對性的最佳化頁面
2、timeline 可看頁面渲染情況,從而進行頁面最佳化
3、profiles可看函式執行情況
第四,網頁效能最佳化推薦工具
1、Chrome(Firefox) Developer Tools ——分析效能
2、HttpWatch ——IE外掛,分析網頁效能
2、PageSpeed —— 檢視效能建議
3、Fiddler —— HTTP/HTTPS網路除錯
最後,別忘記了一件事,完成相關的網頁最佳化操作後,再進行適當的網頁效能測試,以防前面的工作變成無用功。一個好的網站不是開發一個人的事情,還有產品、設計、SEO、測試等人員參與其中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2652849/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【前端除錯】- 藉助Performance分析並最佳化效能前端除錯ORM
- 網頁設計:淺談網頁基本效能最佳化規則小結網頁
- 頁面壞UV效能最佳化
- 頁面渲染:效能分析
- 網站效能最佳化網站
- 如何透過最佳化網站提高網頁開啟速度網站網頁
- 後端介面效能最佳化分析後端
- 利用 Page Visibility API 最佳化網頁效能與使用者體驗API網頁
- 網頁抓取如何幫助資料分析?網頁
- 網頁效能優化網頁優化
- TiDB 效能分析&效能調優&最佳化實踐大全TiDB
- 如何最佳化程式的效能
- 前端面試題 — 前端頁面效能最佳化前端面試題
- redis georadius原始碼分析與效能最佳化Redis原始碼
- Linux效能分析和最佳化命令介紹Linux
- 使用window.performance分析頁面效能ORM
- 活字格效能最佳化技巧(3):如何巧用CDN提升含頁面的訪問速度
- 效能除錯:分析並優化 Go 程式除錯優化Go
- 網頁效能 CaseStudy:以 PressOne 首頁為例網頁
- 運維文件:網站效能最佳化運維網站
- MySQL 如何最佳化大分頁查詢?MySql
- 【效能監控】如何有效監測網頁靜態資源大小?網頁
- 我對請求做了個效能小最佳化,提升了50%的頁面效能
- Google釋出網頁體驗新演算法,網站該如何最佳化調整Go網頁演算法網站
- 網站主網頁修改,如何更新網站主頁內容網站網頁
- Scrutiny 10 for Mac(網頁Web最佳化工具)10.4.10Mac網頁Web
- Mac網頁Web最佳化工具——Scrutiny 9 for MacMac網頁Web
- Postman模擬瀏覽器網頁請求並獲取網頁資料Postman瀏覽器網頁
- 心遇iOS端會話頁效能最佳化 — ReactiveObjC實踐篇iOS會話ReactOBJ
- BGP會損害網路效能?如何根據應用需求最佳化BGP?-ElinkcloudCloud
- elasticsearch查詢之大資料集分頁效能分析Elasticsearch大資料
- Node效能如何進行監控以及最佳化?
- 如何用python爬蟲分析動態網頁的商品資訊?Python爬蟲網頁
- 如何分析報表效能問題
- 如何分析一條sql的效能SQL
- Unity效能最佳化CPU最佳化Unity
- 千萬級資料深分頁查詢SQL效能最佳化實踐SQL
- 資料庫系列:MySQL慢查詢分析和效能最佳化資料庫MySql