除了讓 browser 自己決定優先權外,在「Preload Scripts」這邊看到的技巧,可以跟 browser 說明哪些資源比較重要,請儘快先下載:
<link rel="preload" href="main.js" as="script">
Link rel=preload is useful for downloading any important resource more quickly, such as stylesheets that contain critical CSS, fonts that are used in important design elements, and hero images. It's especially important for scripts because they block page content from rendering and consume the most CPU during page load.
以作者的想法,這個技巧應該用在會卡住頁面呈現的部分,確保這些資源可以優先下載。
另外作者也提到了可以直接把這個資訊放到 HTTP header 裡面,理論上會更快:
Link: <main.js>; rel="preload"; as="script"
尤其是 sync script 應該會有幫助,建議可以跑 A/B test 看看效果:
We know that synchronous scripts block rendering, which makes the user experience feel slow. And we know that most scripts today are downloaded synchronously (rather than async). And yet only 1% of sites are using link rel=preload to download their scripts. If your site has any synchronous scripts, do an A/B test adding link rel=preload for them. It's likely this will be a win and help you create a more joyous experience for your users.