<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何控制Web資源加載的優(yōu)先級(jí)?

          共 2814字,需瀏覽 6分鐘

           ·

          2021-12-10 02:46


          瀏覽器解析資源的優(yōu)先級(jí)

          當(dāng)瀏覽器開始解析網(wǎng)頁,并開始下載圖片、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í)。
          • Scriptasyncdefer 屬性都會(huì)影響它的優(yōu)先級(jí)。

          綜合考慮這些因素,下面是現(xiàn)在大多數(shù)的資源在 Chrome 中的優(yōu)先級(jí)和排序方式:

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

          盡管瀏覽器很擅長這件事情,但是并不是所有情況下默認(rèn)的下載優(yōu)先級(jí)都是最佳的。

          為什么你需要 Priority Hints ??

          知道了瀏覽器為資源分配下載優(yōu)先級(jí)的方式,我們就可以根據(jù)實(shí)際的業(yè)務(wù)場(chǎng)景去適當(dāng)做一些調(diào)整: