1. 程式人生 > >效能優化------瀏覽器端

效能優化------瀏覽器端

瀏覽器效能優化更重要
  Time Retrieving HTML 10%-20%----花在下載主文件的時間
  Time Elsewhere 80%左右---花在引用資源的時間
   
  19條優化規則:
  規則1:把CSS放在HEAD中載入
  能讓頁面更早的開始渲染,避免閃屏
  最好能包含關鍵渲染路徑的樣式:首屏(第一屏的樣式一定放在head裡面)
   
  規則2:把js放在body末尾載入
  因為js阻塞HTML解析和css渲染
   
  規則3:不使用CSS表示式
  看似強大,實際效能開銷很大,可能導致頁面卡頓
   
  規則4:用外鏈方式引用Css和js
  有效減少HTML的體積 (這樣CSS和js作為靜態資源可以在瀏覽器設定快取響應頭)
  可合理利用瀏覽器快取(css js作為靜態資源快取在瀏覽器端,這樣不用再次請求伺服器)
   
  規則5壓縮JS和CSS
  生產環境刪除不必要的註釋、空白
  JS中變數名壓縮,混淆壓縮(對css進行屬性合併如background:,選擇符的合併)
   
  規則6:不重複載入Js
  在IE中還是會多個請求,不能發揮快取優勢
  意味著更長的JS執行時間
   
  規則7:讓Ajax請求可快取(屬於服務端優化)
  Gzip、內容壓縮都可適用
   
  規則8:用GET 方式發起Ajax請求
  get方式可以快取
  如果是獲取資訊,get更語義化
   
  規則9:元件延遲載入
  保障關鍵頁面資源優先載入:因為併發數限制
  延遲載入的典型手段:lazyload(懶載入或按需載入),首屏之後的DOM上使用
   
  規則10:減少DOM節點數
  天貓:更多節點數意味瀏覽器佈局、 渲染時計算量更大
   
  規則11:避免使用iframe
  會阻塞父文件的onload
  即時是空白也比較耗時
   
  規則12:減少COOKIE體積
  因為COOKIE每次請求都會全部帶上(主文件 jss css 圖片等非同步請求等同域資源)
   
  規則13:使用無COOKIE域名載入靜態資源(伺服器端)
  減少靜態資源載入時的網路傳輸量
  靜態資源載入通常是不需要COOKIE的
  阿里:精簡COOKIE後,每年節省的流量TB記
   
  規則14:減少js中DOM訪問
  對於查詢到的元素,快取在變數中
  節點增加是合理利用DomentFragment
  不要用js去頻繁修改樣式
   
  規則15:使用更智慧的事件監聽機制
  基於事件冒泡的委託機制,有效減少繫結的數量
   
  規則16:使用常見的圖片優化手段
  相比程式碼,圖片體積很大
  常用的圖片壓縮工具: PNGCrush、 JPEGTRAN、PNGQUANT
  漸進式編碼:JPG
   
  規則17:不要在HTML中縮放圖片
  徒增渲染開銷,提供適當尺寸即可(放10*10圖片就避免50*50的避免開銷)
  規則18:不要把圖片SRC置空
  IE、Chrome、FireFox會發起額外的主文件請求
   
  規則19:任何資源儘量在25k以內
  ipone無法快取25k以上的資源