前端性能優(yōu)化

一、前言

網頁生成的過程:
要理解網頁性能為什么不好吟榴,需要先了解網頁是怎么生成的郊楣。
網頁生成過程,大致分為五步:

1.HTML代碼轉化成DOM
2.css代碼轉化成CSSOM(css object model)
3.結合DOM和CSSOM摔刁,生成一顆渲染樹(包含每個節(jié)點的視覺信息)
4.生成布局(layout)挥转,即將所有渲染樹的所有節(jié)點進行平面合成
5.將布局繪制(paint)在屏幕上

這五步里面,第一步到第三步都非彻睬快绑谣,耗時的是第四步和第五步∞忠“生成布局”(flow)和繪制(paint)這兩步借宵,合稱為“渲染”。

二矾削、優(yōu)化的意義

現(xiàn)階段PC的性能絕大多數(shù)情況是過剩的壤玫,但移動端性能就參差不齊了,因此對移動端H5頁面進行精細的性能優(yōu)化是極其重要的哼凯。
移動端的WEB頁面本身渲染性能產于Native的APP欲间,只管產品的功能,不關注性能優(yōu)化断部,將極大的影響Web頁面的體驗猎贴。

三、用戶的感知

當用戶能夠在1-2秒內打開H5頁面,看到信息的展示嘱能,或者能夠開始進行下一步操作吝梅,用戶會感覺速度還好,還可以接受惹骂;而頁面如果在2-5秒后才可以進去可用的狀態(tài)苏携,用戶的耐心會逐漸喪失;而如果一個界面查過5秒甚至更久才能顯示出來对粪,這對用戶來說基本是無法忍受的右冻,也許有一部分用戶會推出重新進入,但更多的用戶會直接放棄使用著拭。

四纱扭、優(yōu)化方案

1.首屏加載

當頁面資源較多時,用戶從點擊開始加載頁面儡遮,用戶第一感知是什么時候加載完成乳蛾。正常情況下,應該是在可見屏幕范圍內鄙币,頁面內容完全展示肃叶,如果在弱網狀態(tài)下,會出現(xiàn)資源加載進度條十嘿,這樣避免資源未加載完因惭,展示出殘缺不全的頁面,影響用戶體驗绩衷,因此首屏加載蹦魔,事件是一個重要的優(yōu)化點。
在加載時間較長的時候咳燕,務必要讓用戶明確感知到加載完成的提示勿决,通常是在加載過程中顯示Loading的進度條,加載完成的時候隱藏它迟郎,從心理上剥险,只會讓用戶有一種期待感,而不至于太多枯燥宪肖。
對于一些重量級的移動WEB應用表制,例如【游戲H5】、【場景式H5】控乾,開始前需要加載很多資源么介,為了讓后面的游戲過程更為流暢,一個 帶百分比的進度條就顯得格外重要蜕衡。

2.按需加載

按需加載能夠提升首屏加載速度壤短,但盡可能避免對低性能的移動設備的影響,按需加載可能帶來更多的重繪,從而降低了渲染性能久脯,出現(xiàn)卡頓死機現(xiàn)象纳胧。

3.資源懶加載Lazyload

懶加載已經有很多成熟方案,PC端常用的優(yōu)化點帘撰,同樣適用于移動端跑慕。滾屏加載利用瀏覽器空閑時間請求將來要使用的資源,以便用戶訪問下一頁時更快地響應摧找。無條件預先加載:頁面加載完成(load)后核行,馬上獲取其他資源。

4.盡量減少HTTP請求

用戶響應時間的80%是發(fā)生在前端蹬耘。
圖像芝雪,樣式表,腳本综苔,F(xiàn)Lash等減少部件數(shù)量也就降低了呈現(xiàn)網頁所需的HTTP請求的數(shù)量:其中的大部分時間實在下載的網頁的所有組件惩系。
圖片資源:
--css sprite
--base64:URL(內鏈資源,有兼容問題如筛,不會被緩存)蛆挫;
--SVG sprite(未來趨勢,國外大量網站在使用)妙黍;
--icon font
--利用css3繪制簡單icon
Javascript、css瞧剖、HTML等
--合并文件并壓縮文件;
--盡量使用css3動畫代替JS/flash動畫
--盡量使用外聯(lián)js和css資源
服務器拭嫁、域名等部署
--服務器端啟用Gzip技術
--利用CDN加速靜態(tài)資源
--資源分域存放,分域請求
--減少cookie
--配置Etag文件版本標識抓于,高效利用緩存做粤,避免重復下載
--服務端接口合并
--避免與服務器接口不必要的數(shù)據(jù)傳輸
--合理選用GET、POST請求方式
--盡量避免重定向
-在定義鏈接地址的href屬性的時候捉撮,盡量使用最完整的怕品、直接的地址。
--最大限度地減少DOM訪問
-避免使用javascript固定布局
-避免空圖片src

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末巾遭,一起剝皮案震驚了整個濱河市肉康,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌灼舍,老刑警劉巖吼和,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異骑素,居然都是意外死亡炫乓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來末捣,“玉大人侠姑,你說我怎么就攤上這事÷嶙觯” “怎么了莽红?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卒茬。 經常有香客問我船老,道長,這世上最難降的妖魔是什么圃酵? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任柳畔,我火速辦了婚禮,結果婚禮上郭赐,老公的妹妹穿的比我還像新娘薪韩。我一直安慰自己,他們只是感情好捌锭,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布俘陷。 她就那樣靜靜地躺著,像睡著了一般观谦。 火紅的嫁衣襯著肌膚如雪拉盾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天豁状,我揣著相機與錄音捉偏,去河邊找鬼。 笑死泻红,一個胖子當著我的面吹牛夭禽,可吹牛的內容都是我干的。 我是一名探鬼主播谊路,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼讹躯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缠劝?” 一聲冷哼從身側響起潮梯,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惨恭,沒想到半個月后酷麦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡喉恋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年沃饶,在試婚紗的時候發(fā)現(xiàn)自己被綠了母廷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡糊肤,死狀恐怖琴昆,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情馆揉,我是刑警寧澤业舍,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站升酣,受9級特大地震影響舷暮,放射性物質發(fā)生泄漏。R本人自食惡果不足惜噩茄,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一下面、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绩聘,春花似錦沥割、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至衅谷,卻和暖如春椒拗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背获黔。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工陡叠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肢执。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像译红,于是被迫代替她去往敵國和親预茄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內容

  • 圍繞前端的性能多如牛毛侦厚,涉及到方方面面耻陕,以我我們將圍繞PC瀏覽器和移動端瀏覽器的優(yōu)化策略進行羅列注意,是羅列不是展...
    流動碼文閱讀 675評論 0 0
  • 前言 對于前端的性能話題刨沦,從來都沒有斷絕過诗宣。因為這個東西沒有最好,只有更好想诅。而且往往也是業(yè)務的繁雜程度去決定優(yōu)化程...
    Layzimo閱讀 27,775評論 2 51
  • 性能優(yōu)化的話大致有以下幾個部分:加載優(yōu)化圖片優(yōu)化CSS優(yōu)化腳本優(yōu)化渲染優(yōu)化 加載優(yōu)化 1.減少http請求 基本原...
    進擊的蒸汽機閱讀 394評論 0 0
  • 上一篇講了PC端的部分:前端性能優(yōu)化(PC端)召庞,這次繼續(xù)說移動端的岛心。相對于PC端的,移動web瀏覽器上有一些明顯的...
    今天的我吃飽了嗎閱讀 3,361評論 2 17
  • 時間:3月18日 學員:張書銘 任課教師:張老師 課程目標:1.了解風扇的結構 2.認識齒輪傳動:大齒輪帶動小齒輪...
    嘻_閱讀 179評論 0 0