前端性能優(yōu)化分析和對策

1.分析

從用戶輸入 url 柄延,按下回車到網(wǎng)頁呈現(xiàn)過程中跟前端相關(guān)的過程:

  1. 緩存
  2. DNS查詢
  3. 建立TCP連接(無關(guān))
  4. 發(fā)送HTTP請求
    后臺處理
  5. 接收響應(yīng)
  6. 接收完成 -> HTML
  7. 解析 查看DOCTYPE html/xml
  8. 逐行解析
  9. 遇到 html 標(biāo)簽
  10. 遇到CSS瞬矩,會(huì)下載CSS,同時(shí)往下查看悔政,如果還有CSS文件翁涤,就會(huì)一起下載桥言,但是解析的時(shí)候不會(huì)同時(shí)解析,即下載并行迷雪,解析串行。(chrome會(huì)阻塞html渲染虫蝶,ie不會(huì)章咧,看瀏覽器)
  11. 遇到JS,跟CSS相同能真,下載并行赁严,解析串行。(一定會(huì)阻塞html渲染)

2.優(yōu)化對策(分治)

1. DNS查詢:

  • 減少DNS查詢粉铐,盡量減少域名數(shù)疼约。

2. 建立TCP連接:

  • 連接復(fù)用,在發(fā)送http的請求頭中設(shè)置Connection: keep-alive蝙泼。
  • HTTP/2.0 多路復(fù)用

3. 發(fā)送請求:

  • 減少cookie體積程剥,使用 CDN ,CDN沒有cookie
  • 使用 cache-control
  • 同時(shí)發(fā)送多個(gè)請求汤踏,瀏覽器會(huì)自己去請求织鲸,比如同時(shí)請求多個(gè)CSS舔腾,JS,但是同時(shí)發(fā)送請求數(shù)量會(huì)有限制搂擦,一個(gè)域名只能發(fā)送4個(gè)稳诚,那么要是需要發(fā)送多個(gè),那么就需要增加域名瀑踢,如:css.cdn.com/n.css扳还,js.cdn.com/n.js。跟DNS查詢減少域名會(huì)有矛盾橱夭,這個(gè)時(shí)候需要權(quán)衡氨距,假如文件很多,那么增加域名徘钥,增加請求并發(fā)數(shù)衔蹲,減少請求時(shí)間,如果文件很少呈础,那么就不要增加域名舆驶。
  • 合并文件,比如合并js而钞,合并css沙廉。

4. 接收響應(yīng)

  • ETag 制造304響應(yīng),不需要重新接收所有的請求臼节,可以使用上一次的結(jié)果撬陵。
  • 使用 gzip 進(jìn)行壓縮,文件較大時(shí)使用 gzip 壓縮网缝。

5. 接收完成

  • 要寫 DOCTYPE 并且不能寫錯(cuò)巨税。

6. CSS

  • 增加域名,增加下載的并發(fā)數(shù)量
  • 文件大的話就用 gzip 壓縮
  • 放在 head 中
  • 使用 CDN粉臊,增加并發(fā)數(shù)草添,解除光速的限制。

7. JS

  • JS放body的最后

8. 延遲加載和預(yù)加載
**9. 避免空 src 的圖片

  • 可以用 <img src="about:blank">

10. 使用事件委托扼仲,減少監(jiān)聽器

3.如何測試網(wǎng)站優(yōu)化

chrome 開發(fā)者工具远寸,Audits,可以查看屠凶。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末驰后,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子矗愧,更是在濱河造成了極大的恐慌灶芝,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異监署,居然都是意外死亡颤专,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門钠乏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栖秕,“玉大人,你說我怎么就攤上這事晓避〈睾矗” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵俏拱,是天一觀的道長暑塑。 經(jīng)常有香客問我,道長锅必,這世上最難降的妖魔是什么事格? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮搞隐,結(jié)果婚禮上驹愚,老公的妹妹穿的比我還像新娘。我一直安慰自己劣纲,他們只是感情好逢捺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著癞季,像睡著了一般劫瞳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绷柒,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天志于,我揣著相機(jī)與錄音,去河邊找鬼废睦。 笑死伺绽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的郊楣。 我是一名探鬼主播憔恳,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瓤荔,長吁一口氣:“原來是場噩夢啊……” “哼净蚤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起输硝,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤今瀑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體橘荠,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屿附,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哥童。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挺份。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贮懈,靈堂內(nèi)的尸體忽然破棺而出匀泊,到底是詐尸還是另有隱情,我是刑警寧澤朵你,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布各聘,位于F島的核電站,受9級特大地震影響抡医,放射性物質(zhì)發(fā)生泄漏躲因。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一忌傻、第九天 我趴在偏房一處隱蔽的房頂上張望大脉。 院中可真熱鬧,春花似錦芯勘、人聲如沸箱靴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衡怀。三九已至,卻和暖如春安疗,著一層夾襖步出監(jiān)牢的瞬間抛杨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工荐类, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怖现,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓玉罐,卻偏偏與公主長得像屈嗤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子吊输,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

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