前端性能優(yōu)化

今天介紹前端性能優(yōu)化,采用的方法是 CRP(關(guān)鍵渲染路徑)躁染,也就是在關(guān)鍵點(diǎn)上做優(yōu)化封恰。

首先,拋出一個(gè)問題褐啡,當(dāng)我們在瀏覽器輸入一個(gè)地址,到頁面渲染成功鳖昌,發(fā)生了什么备畦?

這個(gè)問題的答案百度一下低飒,到處都是。在此懂盐,我說一下我的理解:

? 這個(gè)過程總共有7個(gè)過程完成

一褥赊、URL解析

二、DNS解析

三莉恼、TCP三次握手拌喉,建立客戶端與服務(wù)端的連接通道

四、發(fā)送HTTP請(qǐng)求

五俐银、服務(wù)器處理和響應(yīng)

六尿背、TCP的四次揮手,關(guān)閉客戶端和服務(wù)端的連接通道

七捶惜、瀏覽器解析渲染

對(duì)于我們前端來說田藐,優(yōu)化的重點(diǎn)放在 DNS解析、與瀏覽器解析上吱七,外加緩存苞轿。

關(guān)鍵路徑一瀏覽器解析過程:

1仿畸、生成DOM樹? ? ? ? ? ? ? ? ? ? ? ? ? ?//標(biāo)簽語義化、避免多級(jí)嵌套(最佳不超過四層)

2、生成CSSOM樹? ? ? ? ? ? ? ? ? ? ? //css解析過程是從右到左解析微饥,所以避免多層級(jí)嵌套(尤其是在使用sass 或 less 過程中)

3、將DOM樹與CSSOM樹融合成渲染樹

4茬斧、通過布局計(jì)算 回流....完成頁面渲染

這個(gè)過程中威蕉,有一些需要注意的點(diǎn): 一、HTML與CSS都是阻礙頁面渲染的東西苍碟,二酒觅、引入CSS的方法有l(wèi)ink 與? @import ,前者是通過異步的方式請(qǐng)求資源微峰,后者是通過同步的方式請(qǐng)求資源舷丹。在開發(fā)過程中,應(yīng)該減少@import 的使用蜓肆。在遇到樣式極少的情況下颜凯,建議直接寫在頁面頂部<style></style>里面。三仗扬、js加載症概,為了讓頁面加載速度更快,在頁面中遇到<script> 標(biāo)簽的? 早芭,如果加載的這個(gè)js文件有依賴 可以加關(guān)鍵字async ( < script async>),如果沒有依賴加關(guān)鍵字 defer ( < script? defer>),在開發(fā)過程中彼城,大部分請(qǐng)情況下加 defer 。四、頁面渲染一次必然有一次回流和重繪募壕,所以為了減少頁面回流调炬,應(yīng)該少操作DOM。

以上說的這幾點(diǎn)舱馅,利用框架 vue 或者react 開發(fā)缰泡,是可以避免的。

關(guān)鍵路徑二:網(wǎng)絡(luò)交互層面上的優(yōu)化:

1代嗤、DNS方面的優(yōu)化

? ? 每一次DNS解析時(shí)間預(yù)計(jì)20-120毫秒? ?/ 減少DNS請(qǐng)求次數(shù)? ?/ DNS預(yù)解析(下圖淘寶為例)

2棘钞、減少HTTP請(qǐng)求次數(shù)和請(qǐng)求資源大小

資源合并壓縮 / 使用字體圖標(biāo) / 數(shù)據(jù)延遲分批加載 / CDN資源 ......

3、利用好緩存資源

如果第一次請(qǐng)求了干毅,以后重新加載頁面宜猜,直接讀取緩存。

常用緩存有 內(nèi)存緩存?硬盤緩存

使用情況:? 打開網(wǎng)頁輸入地址溶锭,直接查找硬盤緩存宝恶;

? ? ? ? ? ? ? ? ? ? F5刷新,優(yōu)先查找內(nèi)存緩存趴捅,然后查找硬盤緩存垫毙;

? ? ? ? ? ? ? ? ? ? 強(qiáng)制刷新:全部服務(wù)器請(qǐng)求資源。

在這一方面拱绑, 更多的操作是服務(wù)端來配置一些參數(shù)综芥,與前端關(guān)聯(lián)性不大。

在之后面試過程中猎拨,如果提及到前端優(yōu)化的問題膀藐,就可以從這些點(diǎn)分別去闡述,思想:?CRP(關(guān)鍵渲染路徑)红省。

以上就是我對(duì)前端優(yōu)化的一點(diǎn)認(rèn)識(shí)额各,當(dāng)然還有更多層面的優(yōu)化,例如:代碼運(yùn)行方面吧恃、代碼編譯虾啦、安全等方面。希望同學(xué)們補(bǔ)充痕寓、或者有不對(duì)的地方傲醉,提出意見。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呻率,一起剝皮案震驚了整個(gè)濱河市硬毕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌礼仗,老刑警劉巖吐咳,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逻悠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡韭脊,警方通過查閱死者的電腦和手機(jī)蹂风,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乾蓬,“玉大人,你說我怎么就攤上這事慎恒∪文冢” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵融柬,是天一觀的道長(zhǎng)死嗦。 經(jīng)常有香客問我,道長(zhǎng)粒氧,這世上最難降的妖魔是什么越除? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮外盯,結(jié)果婚禮上摘盆,老公的妹妹穿的比我還像新娘。我一直安慰自己饱苟,他們只是感情好孩擂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著箱熬,像睡著了一般类垦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上城须,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天蚤认,我揣著相機(jī)與錄音,去河邊找鬼糕伐。 笑死砰琢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赤炒。 我是一名探鬼主播氯析,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼莺褒!你這毒婦竟也來了掩缓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤遵岩,失蹤者是張志新(化名)和其女友劉穎你辣,沒想到半個(gè)月后巡通,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舍哄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年宴凉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片表悬。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弥锄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蟆沫,到底是詐尸還是另有隱情籽暇,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布饭庞,位于F島的核電站戒悠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏舟山。R本人自食惡果不足惜绸狐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望累盗。 院中可真熱鬧寒矿,春花似錦、人聲如沸幅骄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拆座。三九已至主巍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挪凑,已是汗流浹背孕索。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留躏碳,地道東北人搞旭。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像菇绵,于是被迫代替她去往敵國(guó)和親肄渗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

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

  • 圍繞前端的性能多如牛毛咬最,涉及到方方面面翎嫡,以我我們將圍繞PC瀏覽器和移動(dòng)端瀏覽器的優(yōu)化策略進(jìn)行羅列注意,是羅列不是展...
    流動(dòng)碼文閱讀 676評(píng)論 0 0
  • 前端性能優(yōu)化資料整理 頁面性能差的直接后果是用戶需要等待永乌,而等待惑申,尤其是不確定要多長(zhǎng)時(shí)間的等待會(huì)給用戶帶來焦慮具伍,為...
    飄零之雪閱讀 811評(píng)論 2 3
  • 從雅虎軍規(guī)看前端性能優(yōu)化 本文大部分內(nèi)容翻譯自雅虎前端的性能優(yōu)化,如何讓頁面加載更快圈驼,雅虎給出了多個(gè)規(guī)則人芽,原文地址...
    cce117b0a0ce閱讀 910評(píng)論 0 3
  • 在這個(gè)前端用戶體驗(yàn)越來越重要的時(shí)代,你的頁面稍微有點(diǎn)卡頓绩脆,都難以挽留用戶萤厅。而作為一名有追求的前端,勢(shì)必要力所能及地...
    SCQ000閱讀 3,830評(píng)論 0 52
  • 要基于優(yōu)勢(shì)來工作靴迫。 現(xiàn)在人人都在談優(yōu)勢(shì)祈坠,談長(zhǎng)板理論。 但是要是真的問別人“你的優(yōu)勢(shì)是什么矢劲?”,其實(shí)會(huì)發(fā)現(xiàn)大多數(shù)人是...
    楊熙Simon閱讀 115評(píng)論 0 0