前端性能優(yōu)化總結(jié)

在看以下總結(jié)時(shí)盛撑,要注意兩個(gè)詞,并發(fā)緩存


一. (在日常開發(fā)中), 打包構(gòu)建要快

想象一下寫完代碼后捧搞,編譯代碼要5min抵卫,假如再改動(dòng)代碼,打包要10min胎撇。介粘。。這種開發(fā)效率是特別慢的

  • 并發(fā)構(gòu)建(使用插件)
  • loader的使用是需要查找文件的晚树,所以要過(guò)濾不相關(guān)文件
  • 使用緩存

二. 資源加載要快

打開一個(gè)網(wǎng)站后姻采,下載資源的速度要快

1. 資源要壓縮,50MB相比50kb肯定是50kb的下載快爵憎】祝可以使用webpack等構(gòu)建工具(里的plugin)

  • 圖片壓縮
  • css壓縮合并
  • js壓縮合并
  • 圖標(biāo),svg的合并(svg sprite代替icon)

2. 資源越少越好,文件的合并打包纲堵,這樣的話請(qǐng)求數(shù)會(huì)減少巡雨,提高速度。服務(wù)端可開啟gzip席函,壓縮請(qǐng)求的頁(yè)面铐望,提高帶寬。

  • js、css壓縮合并
  • 使用緩存來(lái)減少請(qǐng)求正蛙,cache-control

3. 請(qǐng)求的資源距離要近督弓,靜態(tài)資源部署到cdn

4. 資源按需加載(懶加載、異步加載)

  • 根據(jù)視口或者點(diǎn)擊后在加載頁(yè)面乒验,而不是一口氣加載完
  • 圖片懶加載
  • 組件懶加載
  • 路由懶加載

5. 使用先進(jìn)運(yùn)輸工具(http2.0)

  • 二進(jìn)制分幀層
  • 多路復(fù)用(并發(fā)請(qǐng)求)
  • 數(shù)據(jù)流優(yōu)先級(jí)
  • 頭部壓縮
  • 服務(wù)端推送


三. 頁(yè)面渲染快

下載完資源后愚隧,頁(yè)面要渲染,提高渲染速率也很必要

  • css在上面锻全,js在下面(js是單線程的狂塘,加載后會(huì)立刻執(zhí)行,阻塞渲染過(guò)程)
  • 不重要的js代碼使用延遲加載defer或者ansyc異步加載


四. 體驗(yàn)流暢(使用時(shí))

頁(yè)面渲染完后鳄厌,用戶會(huì)做一些操作荞胡,比如拖滾動(dòng)條,這個(gè)時(shí)候需要使用十分流暢

1.動(dòng)畫流暢

  • 盡量使用css3的animation (以往的動(dòng)畫效果是用js去操作這個(gè)元素了嚎,但是沒(méi)必要,因?yàn)閍nimation使用GPU加速泪漂,而js操作是cpu,會(huì)影響主線程速率)
  • 使用transform歪泳,少用left/top(相對(duì)定位萝勤、絕對(duì)定位),原理也是GPU加速呐伞,硬件(顯卡)加速敌卓,減小cpu負(fù)擔(dān)
  • js使用requestAnimationFrame而不用setInterval(否則動(dòng)畫會(huì)不流暢)

2. 滾動(dòng)、移動(dòng)要流暢

  • 使用防抖debounce和節(jié)流throttle荸哟。由于鼠標(biāo)滾動(dòng)和指針移動(dòng)屬于高頻操作假哎,需要對(duì)操作進(jìn)行限制。
  • DOM增刪操作要少(dom diff鞍历、虛擬dom),為了減少reflow肪虎。
    +輔助計(jì)算劣砍,webworker,相當(dāng)于新開了一個(gè)進(jìn)程扇救。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刑枝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子迅腔,更是在濱河造成了極大的恐慌装畅,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沧烈,死亡現(xiàn)場(chǎng)離奇詭異掠兄,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門蚂夕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)迅诬,“玉大人,你說(shuō)我怎么就攤上這事婿牍〕薮” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵等脂,是天一觀的道長(zhǎng)俏蛮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)上遥,這世上最難降的妖魔是什么嫁蛇? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮露该,結(jié)果婚禮上睬棚,老公的妹妹穿的比我還像新娘。我一直安慰自己解幼,他們只是感情好抑党,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著撵摆,像睡著了一般底靠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上特铝,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天暑中,我揣著相機(jī)與錄音,去河邊找鬼鲫剿。 笑死鳄逾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的灵莲。 我是一名探鬼主播雕凹,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼政冻!你這毒婦竟也來(lái)了枚抵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤明场,失蹤者是張志新(化名)和其女友劉穎汽摹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苦锨,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逼泣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年趴泌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片圾旨。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡踱讨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出砍的,到底是詐尸還是另有隱情痹筛,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布廓鞠,位于F島的核電站帚稠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏床佳。R本人自食惡果不足惜滋早,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望砌们。 院中可真熱鬧杆麸,春花似錦、人聲如沸浪感。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)影兽。三九已至揭斧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間峻堰,已是汗流浹背讹开。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捐名,地道東北人旦万。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像桐筏,于是被迫代替她去往敵國(guó)和親纸型。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • 先說(shuō)總結(jié)梅忌,前端優(yōu)化核心邏輯就是:減少請(qǐng)求數(shù)(或同時(shí)間請(qǐng)求數(shù))與請(qǐng)求資源大小,減少重繪與回流 減少請(qǐng)求數(shù)(或者同一時(shí)...
    blossom_綻放閱讀 666評(píng)論 0 0
  • 前端性能優(yōu)化的七大手段除破,記個(gè)筆記 前面的話 本文將詳細(xì)介紹前端性能優(yōu)化的七大手段牧氮,包括減少請(qǐng)求數(shù)量、減小資源大小瑰枫、...
    S_Kingtz閱讀 593評(píng)論 0 0
  • 網(wǎng)站的劃分一般為二:前端和后臺(tái)踱葛。我們可以理解成后臺(tái)是用來(lái)實(shí)現(xiàn)網(wǎng)站的功能的丹莲,比如:實(shí)現(xiàn)用戶注冊(cè),用戶能夠?yàn)槲恼掳l(fā)表評(píng)...
    ConRon閱讀 775評(píng)論 0 0
  • 在實(shí)際的項(xiàng)目開發(fā)中尸诽,不管是前端也好甥材,后端也好,都需要?dú)q其性能進(jìn)行優(yōu)化性含,今天主要講講在前端常見(jiàn)的性能優(yōu)化方式: 一洲赵、...
    Marin_chen閱讀 329評(píng)論 1 4
  • 主要考慮的方面:從內(nèi)容上壓縮,在請(qǐng)求上減少商蕴,頁(yè)面加載更快叠萍,響應(yīng)更及時(shí),更好的用戶體驗(yàn)绪商。 減少http請(qǐng)求方面: 用...
    阿金的故事閱讀 773評(píng)論 0 0