前端性能優(yōu)化清單

本文參考

以下是針對(duì)目前公司項(xiàng)目(我參與的項(xiàng)目)的具體情況拗踢,整理出來(lái)的優(yōu)化點(diǎn)

一、目前的spa單頁(yè)面應(yīng)用的性能瓶頸主要有哪些巢墅?

1、首屏渲染慢
...
(歡迎補(bǔ)充)

二驯遇、 原因分析

1蓄髓、 首屏渲染慢, 主要有以下原因

  • 文件過(guò)大, 加載、解析占用了過(guò)多時(shí)間
  • 加載了無(wú)用的資源(其他頁(yè)面的資源)

三陡叠、如何優(yōu)化

1. 啟用 Gzip ☆☆☆☆☆

Gzip 壓縮通持矗可以減少 70% 的響應(yīng)大小,對(duì)某些文件更可能高達(dá) 90%预茄。主流 Web 服務(wù)器都有相應(yīng)模塊,而且絕大多數(shù)瀏覽器支持 gzip 解碼昵慌。所以,應(yīng)該對(duì) HTML已卷、CSS淳蔼、JS、XML鹉梨、JSON 等文本類(lèi)型的內(nèi)容啟用壓縮。

注意晌坤,圖片和 PDF 文件不要使用 gzip旦袋。它們本身已經(jīng)壓縮過(guò)疤孕,再使用 gzip 壓縮不僅浪費(fèi) CPU 資源,而且還可能增加文件體積鹉戚。

目前我們的服務(wù)器都默認(rèn)開(kāi)啟了gzip专控。

2. code-splitting 代碼分割 ☆☆☆☆☆

作用:避免加載不必要的資源。
使用:

# webpack3 使用import() , webpack2使用require.ensure
const riskManage = ()=> import(/* webpackChunkName: 'hfq-****' */ 'pages/****/index')

效果:

  • 頁(yè)面加載的資源大小從2.3M減少為1.2M, 減少了50%却桶。
  • 頁(yè)面加載時(shí)間從11.04s縮短為8.37s. 頁(yè)面加載時(shí)間縮短了25%蔗牡。


    優(yōu)化前后對(duì)比.jpeg

部分項(xiàng)目未做代碼切割,如boss系統(tǒng)

3. 利用service workers實(shí)現(xiàn)緩存。 ☆☆☆☆

需要在https協(xié)議下運(yùn)行, 可大幅提高用戶體驗(yàn),目前沒(méi)有項(xiàng)目用到嘁扼。

4. 圖片優(yōu)化 ☆☆☆

適用于圖片比較多的應(yīng)用黔攒。

5. 資源加載優(yōu)化(提前加載、延遲加載不傅、異步加載) ☆☆☆

  • defer 異步加載腳本,所有元素加載完成之后, DOMContentLoaded事件觸發(fā)之前執(zhí)行。

  • async 異步加載腳本商虐,加載完即執(zhí)行崖疤。


    image.png
  • prefecth 加載下一個(gè)頁(yè)面可能用到的資源

  • preload 提前加載當(dāng)前頁(yè)面的資源

對(duì)于當(dāng)前頁(yè)面很有必要的資源使用 preload,對(duì)于可能在將來(lái)的頁(yè)面中使用的資源使用 prefetch叮趴。

  • dns-prefetch DNS預(yù)解析

適用于大多數(shù)項(xiàng)目

6. 優(yōu)先加載關(guān)鍵的css ☆☆

  • 優(yōu)化首屏渲染

7. Intersection Observer 判斷元素是否出現(xiàn)在視圖中 ☆☆

  • 資源(如圖片)懶加載
  • 列表滾動(dòng)加載

8. 字體優(yōu)化 ☆☆

9. 合理使用CDN ☆☆☆☆

...
歡迎補(bǔ)充


附上幾篇好文:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末眯亦,一起剝皮案震驚了整個(gè)濱河市豪嚎,隨后出現(xiàn)的幾起案子谈火,更是在濱河造成了極大的恐慌,老刑警劉巖扔字,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件温技,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡舵鳞,警方通過(guò)查閱死者的電腦和手機(jī)蜓堕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)迂猴,“玉大人背伴,你說(shuō)我怎么就攤上這事峰髓∠⒊撸” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵眉孩,是天一觀的道長(zhǎng)勒葱。 經(jīng)常有香客問(wèn)我,道長(zhǎng)凛虽,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任呀潭,我火速辦了婚禮至非,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谐鼎。我一直安慰自己趣惠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布草戈。 她就那樣靜靜地躺著侍瑟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涨颜。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天揽思,我揣著相機(jī)與錄音钉汗,去河邊找鬼羹令。 笑死损痰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肪凛。 我是一名探鬼主播辽社,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼戳葵!你這毒婦竟也來(lái)了汉匙?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤戏自,失蹤者是張志新(化名)和其女友劉穎伤锚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體剂娄,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玄呛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年徘铝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惯吕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淹魄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甲锡,到底是詐尸還是另有隱情,我是刑警寧澤缤沦,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布缸废,位于F島的核電站,受9級(jí)特大地震影響企量,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绳泉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一姆泻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧四苇,春花似錦方咆、人聲如沸月腋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至苫纤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喊废,已是汗流浹背栗弟。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓣蛀,地道東北人陆蟆。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓遍搞,卻偏偏與公主長(zhǎng)得像器腋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纫塌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容