前端優化

網站訪問的過程從用戶輸入網站域名開始,通過DNS解析找到目標服務器,目標服務器收到請求後執行服務器及數據庫等一系列操作,並將響應數據經過互聯網發送到用戶的瀏覽器中,最終由瀏覽器處理響應數據並完成網頁的渲染

1.網頁的資源請求和加載階段

爲了實現網站的快速響應,首先需要考慮的是減少資源的訪問及加載階段所消耗的時間。在使用http1.0/1.1時,chrom會將每個主機強制設置爲最多6個TCP連接,因此可以通過劃分子域的方式,將多個資源分佈在不同子域用來減少請求隊列的等待時間。通常把域名拆分爲3到5個比較合適。

HTTP是一個無狀態的面向連接的協議,即每個HTTP請求都是獨立的,然而無狀態並不代表HTTP不能保持TCP連接,Keep-Alive正是HTTP協議中保持TCP連接非常重要的一個屬性。

2.網頁渲染階段

瀏覽器將ongoing服務器獲取的HTML文檔構建成文檔對象模型DOM,與此同時瀏覽器會下載文檔中引用的CSS與js文件。CSS經過解析構成層疊樣式表模型CSSDOM,js會交給js引擎執行。緊接着,文檔對象模型與層疊樣式模型CSSOM將構建渲染樹。

瀏覽器在加載到js節點後,會交由js殷勤執行,如果js對DOM樹進行讀寫操作,則會影響DOM樹的創建,從而阻塞瀏覽器的渲染過程。解決此問題通常是將js放在頁面底部或者通過異步的方式加載js,另外,過於複雜的css嵌套規則,會影響CSSOM的生成,導致渲染時間延長。

Yahoo法則

1.減少HTTP請求

2.壓縮css和js代碼

3.去除重複引用的腳本

4.可緩存的ajax

5.延遲加載非必要腳本

6.預加載:瀏覽器空閒階段預先加載將來用戶可能會訪問的內容,從而提高頁面的即時響應能力,優化用戶體驗。

7.減少DOM元素數量

DOM元素過多以爲這需要加載更多的數據,在使用js遍歷DOM時更加低效,也意味着執行佈局和繪製時產生更多的性能損耗。

8.減少DOM訪問次數

9.避免使用iframe

10.優化圖像

11優化CSS Sprites

12.不要在HTML中縮放圖片

13.減少Cookie體積

發佈了97 篇原創文章 · 獲贊 16 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章