2021在前端實(shí)現(xiàn)性能優(yōu)化的最新方法

姓名:韓卓成?學(xué)號(hào) :20011210097

轉(zhuǎn)載自::https://blog.csdn.net/m0_50373374/article/details/115415366?utm_medium=distribute.pc_feed_category.none-task-blog-hot-1.nonecase&dist_request_id=&depth_1-utm_source=distribute.pc_feed_category.none-task-blog-hot-1.nonecase&spm=1000.2115.3001.4128

【嵌牛導(dǎo)讀】:影響用戶訪問(wèn)的最大部分是前端的頁(yè)面导披。

網(wǎng)站的劃分一般為二:前端和后臺(tái)。我們可以理解成后臺(tái)是用來(lái)實(shí)現(xiàn)網(wǎng)站的功能的,比如:實(shí)現(xiàn)用戶注冊(cè)弓叛,用戶能夠?yàn)槲恼掳l(fā)表評(píng)論等等蔗包。而前端呢?其實(shí)應(yīng)該是屬于功能的表現(xiàn)。

而我們建設(shè)網(wǎng)站的目的是什么呢旅薄?不就是為了讓目標(biāo)人群來(lái)訪問(wèn)嗎旷赖?所以我們可以理解成前端才是真正和用戶接觸的顺又。

除了后臺(tái)需要在性能上做優(yōu)化外,其實(shí)前端的頁(yè)面更需要在性能優(yōu)化上下功夫等孵,只有這樣才能給我們的用戶帶來(lái)更好的用戶體驗(yàn)稚照。不僅僅如此,如果前端優(yōu)化得好俯萌,他不僅可以為企業(yè)節(jié)約成本果录,他還能給用戶帶來(lái)更多的用戶,因?yàn)樵鰪?qiáng)的用戶體驗(yàn)咐熙。說(shuō)了這么多弱恒,那么我們應(yīng)該如何對(duì)我們前端的頁(yè)面進(jìn)行性能優(yōu)化呢?

【嵌牛鼻子】:在前端實(shí)現(xiàn)性能優(yōu)化的最新方法

【嵌牛提問(wèn)】:如何在前端實(shí)現(xiàn)性能優(yōu)化糖声?

【嵌牛正文】:

HTML優(yōu)化方法

1.精簡(jiǎn)html代碼

可以減少html的嵌套也就是層級(jí)關(guān)系盡量減小斤彼,也可以減小DOM節(jié)點(diǎn)數(shù)也就是盡量壓縮優(yōu)化DOM的節(jié)點(diǎn)數(shù), 讓瀏覽器渲染的DOM節(jié)點(diǎn)數(shù)最少分瘦。

減少一些無(wú)語(yǔ)義的代碼,比如說(shuō)空標(biāo)簽清浮動(dòng)那種代碼

能不用最好不要用琉苇。

建議連接中刪除http或者h(yuǎn)ttps嘲玫,因?yàn)橐话沔溄拥膮f(xié)議頭和頁(yè)面的協(xié)議頭都是一致的,寫(xiě)他們多了4-5個(gè)字符其實(shí)是沒(méi)有什么意義的并扇。而且可以減少代碼體積去团。

也可以刪除多余的空格,換行符穷蛹,縮進(jìn)和不必要的注釋土陪,一般會(huì)用壓縮工具來(lái)處理這個(gè)過(guò)程‰妊可以省略一些標(biāo)簽和屬性鬼雀。使用相對(duì)路徑的url,最大范圍的減少字節(jié)數(shù)蛙吏。

2.文件位置

css文件鏈接盡量放在頁(yè)面頭部源哩,css加載不會(huì)阻塞DOM Tree解析,但是會(huì)阻塞DOM Tree渲染鸦做,也會(huì)阻塞后面js執(zhí)行励烦。也就是說(shuō)DOM Tree在渲染前就要解析好CSS,從而減少瀏覽器重排文檔的次數(shù)泼诱。而且css放在頁(yè)面底部會(huì)導(dǎo)致頁(yè)面白屏?xí)r間變長(zhǎng)坛掠。

js文件一般放在頁(yè)面底部,這是防止js的加載和解析阻塞頁(yè)面元素的正常渲染治筒。

3.用戶體驗(yàn)

設(shè)置favicon.ico, 如果不設(shè)置控制臺(tái)會(huì)報(bào)錯(cuò)屉栓,而且用戶訪問(wèn)的時(shí)候地址欄也是空的,不利于品牌記憶矢炼。

增加首屏必要的css和js系瓢,一般頁(yè)面需要在等待所有的依賴加載完成才會(huì)展示,這樣就會(huì)導(dǎo)致頁(yè)面存在空白句灌。影響用戶體驗(yàn)夷陋,可以增加背景圖或者loading或者骨架屏,比空白頁(yè)好很多胰锌。

CSS優(yōu)化方法

1.提升css渲染性能

謹(jǐn)慎使用一些expensive的屬性骗绕,比如nth-child偽類或者position:fixed定位,因?yàn)檫@些比較消耗瀏覽器的渲染性能资昧。

盡量減少一些樣式層級(jí)的級(jí)數(shù)酬土,比如,div ul li span i { color: red}, 其實(shí)我們可以給i標(biāo)簽設(shè)置class格带,直接書(shū)寫(xiě)樣式撤缴。

避免使用占用過(guò)多cpu和內(nèi)存的屬性刹枉,比如text-indent不要設(shè)置太大的值。

盡量避免使用耗電量大的屬性屈呕,比較占用GPU, 比如transfrom是微宝,transitions, opacity.

精簡(jiǎn)css代碼,使用縮寫(xiě)的語(yǔ)句虎眨,比如margin-top可以寫(xiě)在margin中蟋软,再者如果值為0能刪除就刪除,刪除不必要的單位值嗽桩,刪除過(guò)多的分號(hào)岳守,刪除空格和注釋。盡量減小樣式表的體積碌冶。其實(shí)這些都可以使用壓縮工具來(lái)處理湿痢,會(huì)方便很多。

2.css動(dòng)畫(huà)優(yōu)化

避免同時(shí)動(dòng)畫(huà)扑庞,也就是說(shuō)用戶訪問(wèn)的屏幕區(qū)間里面不要有過(guò)多的動(dòng)畫(huà)蒙袍,動(dòng)畫(huà)太多會(huì)干擾用戶正常瀏覽網(wǎng)站,而且動(dòng)畫(huà)多也影響瀏覽器的性能嫩挤。

延遲動(dòng)畫(huà)的初始化,可以讓其它c(diǎn)ss先渲染消恍,讓動(dòng)畫(huà)延遲岂昭,比如說(shuō)0.5或1。

Javascript優(yōu)化

1.提升js文件的加載性能

css文件放在head標(biāo)簽中狠怨,js文件放在body結(jié)尾的地方约啊。這個(gè)是js的加載不要影響html的渲染。

2.變量和函數(shù)方面的優(yōu)化

盡量使用id選擇器佣赖,因?yàn)閕d選擇器在查詢效果上效率最快恰矩。

js函數(shù)盡可能保持簡(jiǎn)潔,不要把太多內(nèi)容寫(xiě)在一個(gè)函數(shù)中憎蛤。也建議使用事件的節(jié)流函數(shù)外傅。

3.js動(dòng)畫(huà)

盡量避免添加大量的js動(dòng)畫(huà),css3動(dòng)畫(huà)和canvas動(dòng)畫(huà)都比js動(dòng)畫(huà)性能好俩檬。

4.使用邏輯緩存

緩存dom對(duì)象萎胰,也就是用一個(gè)變量來(lái)存儲(chǔ)dom對(duì)象,不要每次使用都查詢棚辽。

緩存列表長(zhǎng)度技竟,也就是說(shuō)用變量存儲(chǔ)dom元素的個(gè)數(shù),而不是每次都重新計(jì)算屈藐。

比如百度M站榔组,會(huì)把頁(yè)面的css和js放在本地存儲(chǔ)里面熙尉,這樣后面再加載的時(shí)候就直接從本地存儲(chǔ)里面取,實(shí)現(xiàn)秒考的效果搓扯。不過(guò)本地存儲(chǔ)空間有限检痰,要謹(jǐn)慎使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末擅编,一起剝皮案震驚了整個(gè)濱河市攀细,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌爱态,老刑警劉巖谭贪,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異锦担,居然都是意外死亡俭识,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門洞渔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)套媚,“玉大人,你說(shuō)我怎么就攤上這事磁椒〉塘觯” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵浆熔,是天一觀的道長(zhǎng)本辐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)医增,這世上最難降的妖魔是什么慎皱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮叶骨,結(jié)果婚禮上茫多,老公的妹妹穿的比我還像新娘。我一直安慰自己忽刽,他們只是感情好天揖,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著缔恳,像睡著了一般宝剖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上歉甚,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天万细,我揣著相機(jī)與錄音,去河邊找鬼。 笑死赖钞,一個(gè)胖子當(dāng)著我的面吹牛腰素,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雪营,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼弓千,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了献起?” 一聲冷哼從身側(cè)響起洋访,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谴餐,沒(méi)想到半個(gè)月后姻政,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岂嗓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年汁展,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厌殉。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡食绿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出公罕,到底是詐尸還是另有隱情器紧,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布楼眷,位于F島的核電站品洛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏摩桶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一帽揪、第九天 我趴在偏房一處隱蔽的房頂上張望硝清。 院中可真熱鬧,春花似錦转晰、人聲如沸芦拿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蔗崎。三九已至,卻和暖如春扰藕,著一層夾襖步出監(jiān)牢的瞬間缓苛,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工邓深, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留未桥,地道東北人笔刹。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像冬耿,于是被迫代替她去往敵國(guó)和親舌菜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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