web 性能優(yōu)化

web 性能優(yōu)化主要分為兩類(lèi):加載時(shí)優(yōu)化與運(yùn)行時(shí)優(yōu)化;
從以下幾個(gè)方面考慮;減少請(qǐng)求次數(shù)、減少資源加載量、減少請(qǐng)求耗時(shí)、提高頁(yè)面響應(yīng)速度、注重用戶(hù)體驗(yàn);
性能優(yōu)化也有相應(yīng)的代價(jià),需要根據(jù)實(shí)際場(chǎng)景測(cè)試后進(jìn)行權(quán)衡,避免不必要的優(yōu)化。

1.DNS 服務(wù)優(yōu)化

  • 采用 DNS 加速器加速 DNS 解析;
  • 配置 host,減少 DNS 解析;

2.TCP 連接復(fù)用 keep-alive

  • HTML,css,js等文件可以通過(guò)一次 TCP 連接發(fā)起請(qǐng)求

3.SQL 優(yōu)化

  • 通過(guò)優(yōu)化 SQL 查詢(xún)數(shù)據(jù)庫(kù)的時(shí)間,減少 waiting 時(shí)間

4.提高服務(wù)器帶寬

  • 升級(jí)服務(wù)器帶寬提高響應(yīng)速度

5.gzip 壓縮

  • Content-Encoding: gzip 后臺(tái)開(kāi)啟 gzip 壓縮響應(yīng)資源
  • 瀏覽器解壓縮資源

6.優(yōu)化 css

  • 去除冗余的 css 選擇器和內(nèi)容,減少重復(fù)渲染

7.優(yōu)先加載 css

  • css 先加載呈現(xiàn)頁(yè)面內(nèi)容,再加載 js 資源

8.懶加載

  • 先加載首屏資源,提高頁(yè)面響應(yīng)速度

9.資源預(yù)加載

  • 一些重要的資源可以預(yù)先加載,提高用戶(hù)點(diǎn)擊時(shí)的頁(yè)面響應(yīng)速度,比如上一頁(yè)、下一頁(yè)內(nèi)容

10.利用 HTTP 緩存

  • 除首頁(yè) HTML 之外資源可以利用 Cache-Control: max-age 強(qiáng)制緩存
  • 利用 md5 對(duì)資源添加版本號(hào)
  • 當(dāng)資源發(fā)生更新時(shí),版本號(hào)會(huì)變化,重新去服務(wù)器獲取新資源

11.多個(gè)域名分批請(qǐng)求

  • 一個(gè)域名的最大并發(fā)請(qǐng)求數(shù)是有限制的
  • 將資源進(jìn)行分類(lèi),不同的 CDN 域名請(qǐng)求不同的資源,提高并發(fā)請(qǐng)求數(shù)
  • cookie-free: css 資源,圖片資源等利用 CDN 域名可以不用攜帶 cookie,減少上傳量

12.采用 HTTP2.0

  • 多路復(fù)用;
  • 頭部壓縮;
  • 服務(wù)端推送

13.服務(wù)端渲染

  • 服務(wù)端渲染的網(wǎng)站則會(huì)渲染完頁(yè)面再返回 HTML 文件,客戶(hù)端只需解析 HTML 即可
  • 首屏渲染速度提高,同時(shí)利于 SEO 優(yōu)化

14.采用 iconfont 字體圖標(biāo)

  • 字體圖標(biāo)生成文件小,矢量圖不失真
  • 可以和字體一樣設(shè)置屬性

15.減少頁(yè)面的重排重繪

  • JS避免直接修改樣式,通過(guò)替換 class 來(lái)修改樣式
  • 合理利用文檔流特點(diǎn),脫離文檔流使得操作 DOM 對(duì)頁(yè)面其它元素的影響降低
  • 使用 CSS3 的 transform 觸發(fā)瀏覽器開(kāi)啟 GPU 加速,如transform: translateZ(0)
  • 減少浮動(dòng)的使用,減少渲染性能消耗

16.添加 favicon.ico

  • 如果沒(méi)有設(shè)置圖標(biāo) ico,瀏覽器默認(rèn)的圖標(biāo)會(huì)多發(fā)送一個(gè) 404 或者 500 的請(qǐng)求

17.采用事件委托添加事件

  • 利用事件冒泡機(jī)制,通過(guò)指定一個(gè)事件來(lái)托管子元素的事件
  • 多數(shù)鼠標(biāo)事件、鍵盤(pán)事件都適合采用事件委托
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 如何理解 Web 性能優(yōu)化 事實(shí)上就是用戶(hù)覺(jué)得頁(yè)面加載很快,用戶(hù)從輸入U(xiǎn)RL(網(wǎng)址)到頁(yè)面在瀏覽器上加載出來(lái)的時(shí)間...
    不討喜的大雄閱讀 723評(píng)論 0 2
  • 網(wǎng)頁(yè)性能優(yōu)化的目的 減少服務(wù)器壓力 增強(qiáng)用戶(hù)體驗(yàn),減少加載時(shí)間,通俗地說(shuō)就是用戶(hù)感覺(jué)打開(kāi)你的網(wǎng)頁(yè)很快,等待頁(yè)面資源...
    Scott1738閱讀 403評(píng)論 0 1
  • 理解 Web 性能優(yōu)化 對(duì)于Web的性能話題,從來(lái)都沒(méi)有斷絕過(guò)。因?yàn)檫@個(gè)東西沒(méi)有最好,只有更好。而且往往也是業(yè)務(wù)的...
    lyp82nkl閱讀 94評(píng)論 0 0
  • 最近在寫(xiě)一個(gè)智慧教室行為管理網(wǎng)站,網(wǎng)站已經(jīng)完工,老師見(jiàn)我沒(méi)事兒干了,讓我嘗試如何在前端實(shí)現(xiàn)性能優(yōu)化,以前也模糊知道...
    DecadeHeart閱讀 2,079評(píng)論 0 2
  • 我們都知道對(duì)于Web應(yīng)用來(lái)說(shuō)性能很重要。然而性能優(yōu)化相關(guān)的知識(shí)卻非常的龐大并且雜亂。對(duì)于性能優(yōu)化需要做些什么以及性...
    PHP9年架構(gòu)師閱讀 332評(píng)論 0 6

友情鏈接更多精彩內(nèi)容