一張圖看懂HTML5的前端性能優化
最近1個月一直在設計HTML5相關的產品,沒錯,主要是用于微信的,雖然很多情況下,HTML5頁面的設計類似于APP,但是由于是網頁性的東西,對移動網絡帶寬和瀏覽器性能,CPU,GP...
概述
1. PC優化手段在Mobile側同樣適用
2. 在Mobile側我們提出三秒種渲染完成首屏指標
3. 基于第二點,首屏加載3秒完成或使用Loading
4. 基于聯通3G網絡平均338KB/s(2.71Mb/s),所以首屏資源不應超過1014KB
5. Mobile側因手機配置原因,除加載外渲染速度也是優化重點
6. 基于第五點,要合理處理代碼減少渲染損耗
7. 基于第二、第五點,所有影響首屏加載和渲染的代碼應在處理邏輯中后置
8. 加載完成后用戶交互使用時也需注意性能
優化指南
[加載優化]
加載過程是最為耗時的過程,可能會占到總耗時的80%時間,因此是優化的重點
· 減少HTTP請求
因為手機瀏覽器同時響應請求為4個請求(Android支持4個,iOS 5后可支持6個),所以要盡量減少頁面的請求數,首次加載同時請求數不能超過4個
a) 合并CSS、JavaScript
b) 合并小圖片,使用雪碧圖
· 緩存
使用緩存可以減少向服務器的請求數,節省加載時間,所以所有靜態資源都要在服務器端設置緩存,并且盡量使用長Cache(長Cache資源的更新可使用時間戳)
a) 緩存一切可緩存的資源
b) 使用長Cache(使用時間戳更新Cache)
c) 使用外聯式引用CSS、JavaScript
· 壓縮HTML、CSS、JavaScript
減少資源大小可以加快網頁顯示速度,所以要對HTML、CSS、JavaScript等進行代碼壓縮,并在服務器端設置GZip
a) 壓縮(例如,多余的空格、換行符和縮進)
b) 啟用GZip
· 無阻塞
寫在HTML頭部的JavaScript(無異步),和寫在HTML標簽中的Style會阻塞頁面的渲染,因此CSS放在頁面頭部并使用Link方式引入,避免在HTML標簽中寫Style,JavaScript放在頁面尾
部或使用異步方式加載
· 使用首屏加載
首屏的快速顯示,可以大大提升用戶對頁面速度的感知,因此應盡量針對首屏的快速顯示做優化
· 按需加載
將不影響首屏的資源和當前屏幕資源不用的資源放到用戶需要時才加載,可以大大提升重要資源的顯示速度和降低總體流量
PS:按需加載會導致大量重繪,影響渲染性能
a) LazyLoad
b) 滾屏加載
c) 通過Media Query加載
-
無相關信息