【W(wǎng)eb技術(shù)】1158- 如何控制Web資源加載的優(yōu)先級(jí)?

瀏覽器解析資源的優(yōu)先級(jí)
當(dāng)瀏覽器開(kāi)始解析網(wǎng)頁(yè),并開(kāi)始下載圖片、Script 以及 CSS 等資源的時(shí)候,瀏覽器會(huì)為每個(gè)資源分配一個(gè)代表資源下載優(yōu)先級(jí)的 fetch priority 標(biāo)志。
而資源下載的順序就取決于這個(gè)優(yōu)先級(jí)標(biāo)志,這個(gè)優(yōu)先級(jí)標(biāo)志的計(jì)算邏輯會(huì)受很多因素的影響:
Script、CSS、Font、Image等不同的資源類型會(huì)有不同的優(yōu)先級(jí)。在 HTML文檔中引用資源的位置或順序也會(huì)影響資源的優(yōu)先級(jí)(例如在viewport中的圖片資源可能具有高優(yōu)先級(jí),而在標(biāo)簽中加載的,阻塞渲染的CSS則擁有更高的優(yōu)先級(jí))。有 preload屬性的資源有助于瀏覽器更快地發(fā)現(xiàn)資源、其實(shí)也是影響資源加載的優(yōu)先級(jí)。Script的async或defer屬性都會(huì)影響它的優(yōu)先級(jí)。
綜合考慮這些因素,下面是現(xiàn)在大多數(shù)的資源在 Chrome 中的優(yōu)先級(jí)和排序方式:

瀏覽器按照資源被發(fā)現(xiàn)的順序下載具有相同計(jì)算優(yōu)先級(jí)的資源。你可以在 DevTools Network 下看到分配給不同資源的優(yōu)先級(jí):

盡管瀏覽器很擅長(zhǎng)這件事情,但是并不是所有情況下默認(rèn)的下載優(yōu)先級(jí)都是最佳的。
為什么你需要 Priority Hints ??
知道了瀏覽器為資源分配下載優(yōu)先級(jí)的方式,我們就可以根據(jù)實(shí)際的業(yè)務(wù)場(chǎng)景去適當(dāng)做一些調(diào)整:
根據(jù)期望的資源的下載順序放置資源標(biāo)簽,例如 成年人精品| 91AV影院 | 大香蕉色伊人 | 一区二区三区四区五区六区七区八区九区 | 青草视频网 |
