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