隨著挪動(dòng)互聯(lián)網(wǎng)的發(fā)展,咱們?cè)桨l(fā)要關(guān)注挪動(dòng)頁(yè)面的機(jī)能優(yōu)化,今天跟大家談?wù)勥@方面的事件。先,為什么要挪動(dòng)頁(yè)面進(jìn)行優(yōu)化?
縱觀目前挪動(dòng)網(wǎng)絡(luò)的現(xiàn)狀:
挪動(dòng)頁(yè)面布局越來(lái)越龐雜,后果越來(lái)越炫,直接導(dǎo)致了文件越來(lái)越大,下載跟運(yùn)行速度越來(lái)越低,而速度低會(huì)造成不良影響,據(jù)統(tǒng)計(jì):
71%的用戶冀望挪動(dòng)頁(yè)面跟PC頁(yè)面一樣快,74%的用戶能容忍的響應(yīng)時(shí)光為5秒,所以咱們必須保障挪動(dòng)端頁(yè)面有足夠的速度。
挪動(dòng)頁(yè)面的速度跟三個(gè)因素有關(guān),分辨是:挪動(dòng)網(wǎng)絡(luò)帶寬速度,設(shè)備機(jī)能(CPU,GPU,瀏覽器),頁(yè)面自身。
目前主流的挪動(dòng)網(wǎng)絡(luò)制式為3G:
今年,咱們還看到了4g網(wǎng)絡(luò)制式在疾速發(fā)展,這再一次晉升了挪動(dòng)頁(yè)面的加載速度;
而挪動(dòng)設(shè)備自身,截止到目前,以iPhon6/三星Note4等設(shè)備為,智能設(shè)備已經(jīng)變得比以往屏幕更大,CP
U、GP
U、內(nèi)存更靠譜。網(wǎng)站制作通俗的來(lái)說(shuō)就是網(wǎng)站通過(guò)頁(yè)面結(jié)構(gòu)定位,合理布局,圖片文字處理,程序設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)等一系列工作的總和,也是將網(wǎng)站設(shè)計(jì)師的圖片用HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)方式展示出來(lái)。
而與其同時(shí),瀏覽器產(chǎn)商也為晉升頁(yè)面的速度做出了不可磨滅的盡力。
網(wǎng)絡(luò)制式供給商,手機(jī)制造商,瀏覽器產(chǎn)商如此給力,咱們呢?咱們能做什么。
咱們能做得是對(duì)挪動(dòng)端頁(yè)面自身優(yōu)化,這也是咱們價(jià)值的體現(xiàn),所以咱們必須做挪動(dòng)端頁(yè)面機(jī)能優(yōu)化。
該怎么做挪動(dòng)端頁(yè)面優(yōu)化呢?
在說(shuō)這個(gè)前,要提一下PC常用的優(yōu)化手段:
代碼優(yōu)化(cs
S、htm
L、js優(yōu)化)減少HTTP懇求(雪碧圖,文件合并…)減少DOM節(jié)點(diǎn)無(wú)阻塞(內(nèi)聯(lián)CSS,JS置后…)緩存
…
這些手段大局部實(shí)用于挪動(dòng)端,這都是一些耳熟能詳?shù)氖侄?,今天這里就講了,有興趣可能參考PDI課程《網(wǎng)站機(jī)能優(yōu)化》。
今天要講的重要是一些實(shí)用于挪動(dòng)真?zhèn)€優(yōu)化手段,當(dāng)初進(jìn)入正題。
先咱們得關(guān)注一下一個(gè)頁(yè)面從開(kāi)端到顯現(xiàn)結(jié)束須要經(jīng)歷什么階段,重要有四個(gè)階段:
每個(gè)階段的重要工作如上圖所示,而咱們的優(yōu)化目標(biāo)是:
下面咱們來(lái)針對(duì)上面的多少個(gè)階段細(xì)說(shuō)一下都有哪些優(yōu)化手段。
先,來(lái)看看加載中有哪些優(yōu)化手段:
1. 預(yù)加載
預(yù)加載方法有兩種:
A. 顯性加載
類似這種用戶能明顯感知的,我把它稱為顯性加載,互動(dòng)頁(yè)面都倡導(dǎo)加上這種加載方法,它一方面能增加頁(yè)面的趣味性,另一方面能讓后續(xù)頁(yè)面閉會(huì)更流暢。
B. 隱性加載
這種在加載張圖片的時(shí)候已經(jīng)預(yù)先加載了第二張圖片,從而使得頁(yè)面閉會(huì)更流暢的方法,我把它稱為隱性加載,這種方法的利益是節(jié)儉流量之余又能使得閉會(huì)加強(qiáng)。
2. 按需加載
按需加載是不可或缺的優(yōu)化手段,重要有以下兩種方法:
對(duì)這種方法,在屏加載的時(shí)候把屏的內(nèi)容加載盡量,而位于屏之外的元素都只在出當(dāng)初屏?xí)r才加載,很大水平地節(jié)儉了流量,晉升了次加載時(shí)光。
這種叫響應(yīng)式加載方法,意思是利用JS 或者CSS 判斷辨別率,從而抉擇不同尺寸的圖片進(jìn)行引入,這種的利益不問(wèn)可知,同樣可能加快加載速度跟節(jié)儉流量。
3. 緊縮圖片
對(duì)緊縮圖片,先要提的是jpg文件:
對(duì)挪動(dòng)真?zhèn)€JPG 文件,有這樣的論斷:
利用大尺寸大有損緊縮比的jpg利用jpegtran進(jìn)行無(wú)損緊縮
而對(duì)png有以下論斷:
多彩圖片利用png24低彩圖片利用png8推薦利用pngquant盡量避免重定向
為什么要盡量避免重定向呢?因?yàn)槿鐖D:
這是一個(gè)同一網(wǎng)速下的測(cè)試結(jié)果,重定向之所以會(huì)比較慢,是因?yàn)樗貜?fù)了域名查找,tcp鏈接,發(fā)送懇求。
5. 利用其余方法取代圖片
有兩種方法,種是:依附CSS 3繪制圖片:
第二種:利用iconfont取代圖片
但iconfont不一定比圖片好,這里做了個(gè)實(shí)驗(yàn):
對(duì)大圖片,iconfont并不比雪碧圖好,倡導(dǎo)單側(cè)小尺寸圖標(biāo)才利用iconfont.
而后,針對(duì)腳本履行中有哪些優(yōu)化手段,這里只提兩點(diǎn):
1. 盡量避免DataURI
DataUri在挪動(dòng)端并不如它在pc端吃香,因?yàn)椋?br/>經(jīng)測(cè)試,DataURI要比簡(jiǎn)單的外鏈資源慢6倍,生成的代碼文件絕對(duì)圖片文件體積不減少反而增大,而且瀏覽器在對(duì)這種base64解碼進(jìn)程中須要消耗內(nèi)存跟cpu,這個(gè)在挪動(dòng)端壞處特別明顯。
2. 點(diǎn)擊事件優(yōu)化
在挪動(dòng)端請(qǐng)恰當(dāng)利用touchstart,touchend,touch等事件取代延遲比較大的Click 事件。Click之所以慢是因?yàn)閙ousedown導(dǎo)致的:
而后,針對(duì)渲染階段中有哪些優(yōu)化手段,這里也只提兩點(diǎn):
1. 動(dòng)畫(huà)優(yōu)化
a)盡量利用css3動(dòng)畫(huà)
優(yōu)點(diǎn):
不占用js主線程可利用硬件加速瀏覽器可對(duì)動(dòng)畫(huà)做優(yōu)化
毛病:
不支撐旁邊狀況監(jiān)聽(tīng)
b)恰當(dāng)利用canvas動(dòng)畫(huà)
優(yōu)點(diǎn):
可躲避渲染樹(shù)的盤(pán)算渲染更快
毛?。?br/>開(kāi)發(fā)本錢高,維護(hù)較麻煩。
通過(guò)對(duì)CSS 3動(dòng)畫(huà)跟Canvas 動(dòng)畫(huà)對(duì)比:
得到論斷:5個(gè)元素以內(nèi)利用css3動(dòng)畫(huà),5個(gè)以上利用canvas動(dòng)畫(huà)。
c)公道利用RAF(requestAnimationFrame)
優(yōu)點(diǎn):
能解決腳本問(wèn)題引起的丟幀,卡頓問(wèn)題支撐旁邊狀況監(jiān)聽(tīng)
毛?。?br/>兼容問(wèn)題
通過(guò)RAF動(dòng)畫(huà)與settimeout動(dòng)畫(huà)對(duì)比:
得到論斷:不須要兼容android 4.3瀏覽器的情況下,請(qǐng)利用RAF制造腳本動(dòng)畫(huà)
2. 高頻事件優(yōu)化
類似touchmove,scroll這類的事件可導(dǎo)致屢次渲染,對(duì)這種事件可能通過(guò)以下手段進(jìn)行優(yōu)化:
1.利用requestAnimationFrame監(jiān)聽(tīng)?zhēng)兏?,使得在正確的時(shí)光進(jìn)行渲染
2.增加響應(yīng)變更的時(shí)光間隔,減少重繪次數(shù)。
后,針對(duì)合成/繪制只提一個(gè)優(yōu)化手段:
GPU加速
觸發(fā)GPU加速的方法有:
CSS3 transitionsCSS3 3D transformsWebGL 3D 繪制Video
…
利用GPU加速前有對(duì)比實(shí)驗(yàn):
GPU加速實(shí)際上是大幅減少了合成/繪制時(shí)光,從而大大地進(jìn)步了頁(yè)面速度,但GPU加速有自己的毛?。?br/>過(guò)多的GPU層會(huì)帶來(lái)機(jī)能開(kāi)銷,重要起因是利用GPU加速切實(shí)是利用了GPU層的緩存,讓渲染資源可能重復(fù)利用,所以一旦層多了,緩存增大,就會(huì)引起別的機(jī)能問(wèn)題。
總結(jié)
本文針對(duì)頁(yè)面顯現(xiàn)的四個(gè)階段提出了比較典范的優(yōu)化手段,到后,再提示讀者一下:切實(shí)優(yōu)化是雙刃劍。
按需加載晉升速度,但可能導(dǎo)致大量重繪;
Touch響應(yīng)快,但很多場(chǎng)景不適合;
GPU加速效力高,但內(nèi)存開(kāi)銷大等等
Loading會(huì)讓整體閉會(huì)流暢,但輕易造成用戶消散
圖片緊縮讓帶寬本錢降落,但可能會(huì)導(dǎo)致視覺(jué)后果變差
類似這樣的抵觸點(diǎn)還有很多,請(qǐng)結(jié)合業(yè)務(wù)按如實(shí)際情況進(jìn)行優(yōu)化。網(wǎng)站制作通俗的來(lái)說(shuō)就是網(wǎng)站通過(guò)頁(yè)面結(jié)構(gòu)定位,合理布局,圖片文字處理,程序設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)等一系列工作的總和,也是將網(wǎng)站設(shè)計(jì)師的圖片用HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)方式展示出來(lái)。
相關(guān)鏈接:長(zhǎng)春網(wǎng)站建設(shè),長(zhǎng)春網(wǎng)站制作,長(zhǎng)春網(wǎng)站設(shè)計(jì),長(zhǎng)春做網(wǎng)站,長(zhǎng)春建網(wǎng)站,長(zhǎng)春網(wǎng)站公司,長(zhǎng)春網(wǎng)絡(luò)公司,http://m.mysoxin.com.cn/