成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

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

yanwei / 2165人閱讀

摘要:記錄性能優(yōu)化相關(guān)的知識(shí)。將加載和執(zhí)行分離開(kāi),不阻塞渲染和的事件提前加載指定資源使用告訴瀏覽器未來(lái)可能會(huì)使用到的某個(gè)資源,瀏覽器就會(huì)在閑時(shí)去加載對(duì)應(yīng)的資源。

記錄性能優(yōu)化相關(guān)的知識(shí)。

Chrome DevTools — Network

DOMContentLoaded: DOM樹(shù)構(gòu)建完成的時(shí)間
Load: 頁(yè)面加載完畢。即DOM樹(shù)構(gòu)建完成后,加載完圖片等外部資源的時(shí)間
Finish: 是頁(yè)面上所有 HTTP 請(qǐng)求發(fā)送到響應(yīng)完成的時(shí)間

Waterfall

根據(jù) HTTP 請(qǐng)求的不同階段來(lái)進(jìn)行排序

Start Time:請(qǐng)求開(kāi)始的時(shí)間
Response Time:資源開(kāi)始下載的時(shí)間
End Time:請(qǐng)求結(jié)束的時(shí)間
Total Duration:請(qǐng)求整個(gè)完整過(guò)程的時(shí)間
Latency?請(qǐng)求等待響應(yīng)的時(shí)間

如下圖所示,Waterfall 右鍵之后選擇 Total Duration,則請(qǐng)求按照整個(gè)持續(xù)時(shí)間排序,不同的顏色代表不同的資源文件,淺色的部分代表資源的等待時(shí)間,深色的部分代表下載時(shí)間。

懶加載 一、為什么要用懶加載?

二、懶加載的實(shí)現(xiàn)原理

首先,將圖片的地址放在其它屬性(data-url)中,而不是 src。

頁(yè)面加載時(shí)根據(jù) scrollTop 的值判斷圖片是否在可視區(qū)域,如果在可視區(qū)域,則將 data-url 屬性中的值取出存放到src屬性中(首屏的圖片可以直接加載)。

在滾動(dòng)過(guò)程中,判斷圖片是否在可視區(qū)域,如果在,則將 data-url 屬性中的值放到 src 屬性中。

圖片優(yōu)化

圖片優(yōu)化的幾種方式:

CSS Sprite 和 BASE64 的對(duì)比

各個(gè)類(lèi)型圖片的對(duì)比

延遲加載第三方 JS

defer 屬性:渲染 DOM 的過(guò)程將和 JS 腳本加載的過(guò)程異步進(jìn)行,但是?JS 腳本的執(zhí)行要在所有元素解析完成之后(只適用于外部腳本文件)

async 屬性:加載和渲染 DOM 的過(guò)程將和?JS 腳本的加載與執(zhí)行的過(guò)程異步進(jìn)行(只適用于外部腳本文件)

defer 按照加載順序執(zhí)行腳本文件,async 則不會(huì)按照聲明順序執(zhí)行

具體區(qū)別見(jiàn)下圖:

綠色線(xiàn)代表 HTML 解析;藍(lán)色線(xiàn)代表 JS 腳本讀取時(shí)間;紅色線(xiàn)代表 JS 腳本執(zhí)行時(shí)間。

Preload 和 Prefetch

preload 提供了一種聲明式的命令,讓瀏覽器提前加載指定資源(加載后并不執(zhí)行),在需要執(zhí)行的時(shí)
候再執(zhí)行。

將加載和執(zhí)行分離開(kāi),不阻塞渲染和 document 的 onload 事件

提前加載指定資源

使用:

prefetch: 告訴瀏覽器未來(lái)可能會(huì)使用到的某個(gè)資源,瀏覽器就會(huì)在閑時(shí)去加載對(duì)應(yīng)的資源。

使用:

Gzip -> Brotil

Brotli 壓縮算法具有多個(gè)特點(diǎn),最典型的是以下 3 個(gè):

針對(duì)常見(jiàn)的 Web 資源內(nèi)容,Brotli 的性能相比 Gzip 提高了 17-25%;

當(dāng) Brotli 壓縮級(jí)別為 1 時(shí),壓縮率比 Gzip 壓縮等級(jí)為 9(最高)時(shí)還要高;

在處理不同 HTML 文檔時(shí),Brotli 依然能夠提供非常高的壓縮率。

DNS預(yù)解析

默認(rèn)情況下瀏覽器會(huì)對(duì)頁(yè)面中和當(dāng)前域名不在同一個(gè)域的域名進(jìn)行預(yù)獲取,并且緩存,這就是隱式的 DNS Prefetch。如果想對(duì)頁(yè)面中沒(méi)有出現(xiàn)的域進(jìn)行預(yù)獲取,那么就要使用顯示的 DNS Prefetch 。

DNS 預(yù)解析是瀏覽器試圖在用戶(hù)訪(fǎng)問(wèn)鏈接之前解析域名,如果一個(gè)頁(yè)面有多個(gè)域名的鏈接,DNS 預(yù)解析會(huì)在用戶(hù)點(diǎn)擊鏈接之前,使用最少的CPU和網(wǎng)絡(luò)在后臺(tái)進(jìn)行解析。當(dāng)用戶(hù)點(diǎn)擊已經(jīng)預(yù)解析的域名時(shí),可以平均減少 200 ms 的等待時(shí)間,提升用戶(hù)體驗(yàn) 。

 
 
參考文檔:

https://segmentfault.com/a/11...
DNS預(yù)解析: https://www.cnblogs.com/golov...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/109897.html

相關(guān)文章

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

    摘要:前言對(duì)于前端的性能話(huà)題,從來(lái)都沒(méi)有斷絕過(guò)。作為一個(gè)前端開(kāi)發(fā)者,性能是我們關(guān)注的指標(biāo)。前端發(fā)展以來(lái),優(yōu)化方式,琳瑯滿(mǎn)目,有雅虎軍規(guī)等。所以,接下來(lái)我會(huì)從三個(gè)方面就前端性能進(jìn)行總結(jié)網(wǎng)絡(luò)方面操作及渲染方面數(shù)據(jù)方面。 前言 對(duì)于前端的性能話(huà)題,從來(lái)都沒(méi)有斷絕過(guò)。因?yàn)檫@個(gè)東西沒(méi)有最好,只有更好。而且往往也是業(yè)務(wù)的繁雜程度去決定優(yōu)化程度的。作為一個(gè)前端開(kāi)發(fā)者,性能是我們關(guān)注的指標(biāo)。它直接影響著我們...

    oliverhuang 評(píng)論0 收藏0
  • 前端性能優(yōu)化常用總結(jié)

    摘要:前言對(duì)于前端的性能話(huà)題,從來(lái)都沒(méi)有斷絕過(guò)。作為一個(gè)前端開(kāi)發(fā)者,性能是我們關(guān)注的指標(biāo)。前端發(fā)展以來(lái),優(yōu)化方式,琳瑯滿(mǎn)目,有雅虎軍規(guī)等。所以,接下來(lái)我會(huì)從三個(gè)方面就前端性能進(jìn)行總結(jié)網(wǎng)絡(luò)方面操作及渲染方面數(shù)據(jù)方面。 前言 對(duì)于前端的性能話(huà)題,從來(lái)都沒(méi)有斷絕過(guò)。因?yàn)檫@個(gè)東西沒(méi)有最好,只有更好。而且往往也是業(yè)務(wù)的繁雜程度去決定優(yōu)化程度的。作為一個(gè)前端開(kāi)發(fā)者,性能是我們關(guān)注的指標(biāo)。它直接影響著我們...

    walterrwu 評(píng)論0 收藏0
  • 前端性能優(yōu)化常用總結(jié)

    摘要:前言對(duì)于前端的性能話(huà)題,從來(lái)都沒(méi)有斷絕過(guò)。作為一個(gè)前端開(kāi)發(fā)者,性能是我們關(guān)注的指標(biāo)。前端發(fā)展以來(lái),優(yōu)化方式,琳瑯滿(mǎn)目,有雅虎軍規(guī)等。所以,接下來(lái)我會(huì)從三個(gè)方面就前端性能進(jìn)行總結(jié)網(wǎng)絡(luò)方面操作及渲染方面數(shù)據(jù)方面。 前言 對(duì)于前端的性能話(huà)題,從來(lái)都沒(méi)有斷絕過(guò)。因?yàn)檫@個(gè)東西沒(méi)有最好,只有更好。而且往往也是業(yè)務(wù)的繁雜程度去決定優(yōu)化程度的。作為一個(gè)前端開(kāi)發(fā)者,性能是我們關(guān)注的指標(biāo)。它直接影響著我們...

    luzhuqun 評(píng)論0 收藏0
  • 前端每周清單年度總結(jié)與盤(pán)點(diǎn)

    摘要:前端每周清單年度總結(jié)與盤(pán)點(diǎn)在過(guò)去的八個(gè)月中,我?guī)缀踔蛔隽藘杉?,工作與整理前端每周清單。本文末尾我會(huì)附上清單線(xiàn)索來(lái)源與目前共期清單的地址,感謝每一位閱讀鼓勵(lì)過(guò)的朋友,希望你們能夠繼續(xù)支持未來(lái)的每周清單。 showImg(https://segmentfault.com/img/remote/1460000010890043); 前端每周清單年度總結(jié)與盤(pán)點(diǎn) 在過(guò)去的八個(gè)月中,我?guī)缀踔蛔隽?..

    jackwang 評(píng)論0 收藏0
  • 不能錯(cuò)過(guò)的web前端性能優(yōu)化總結(jié)

    摘要:是具有此屬性的域名不需要用戶(hù)點(diǎn)擊鏈接就在后臺(tái)解析,而域名解析和內(nèi)容載入是串行的網(wǎng)絡(luò)操作,所以這個(gè)方式能減少用戶(hù)的等待時(shí)間,提升用戶(hù)體驗(yàn)。 web前端性能優(yōu)化主要分為以下幾個(gè)板塊: 加載優(yōu)化 DNS預(yù)解析 合并img、css、javascript文件,減少http請(qǐng)求 緩存一切可緩存資源 使用長(zhǎng)Cache 使用外聯(lián)式引用css、javascript文件 壓縮HTML、css、jav...

    wums 評(píng)論0 收藏0
  • 不能錯(cuò)過(guò)的web前端性能優(yōu)化總結(jié)

    摘要:是具有此屬性的域名不需要用戶(hù)點(diǎn)擊鏈接就在后臺(tái)解析,而域名解析和內(nèi)容載入是串行的網(wǎng)絡(luò)操作,所以這個(gè)方式能減少用戶(hù)的等待時(shí)間,提升用戶(hù)體驗(yàn)。 web前端性能優(yōu)化主要分為以下幾個(gè)板塊: 加載優(yōu)化 DNS預(yù)解析 合并img、css、javascript文件,減少http請(qǐng)求 緩存一切可緩存資源 使用長(zhǎng)Cache 使用外聯(lián)式引用css、javascript文件 壓縮HTML、css、jav...

    宋華 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<