Scriptタグのリソース読み込み順序についてのメモ
ちょっとトラブってしまったので、反省しつつ整理。
リンク先の画像がすごいわかりやすいので、これ見たら解決するけど。
パターン
<script> <script defer> <script async> <script type="module"> <script type="module" async>
この5個がある。2018/01/29時点では module のサポート状況微妙だけど。
Can I use... Support tables for HTML5, CSS3, etc
Classic Scripts
module scriptsではない方を参照先ではこう読んでいたので倣っておく。
fetch | evaluate | |
---|---|---|
[default] | HTMLのパースをブロックしてFetchする | Fetch直後にJSの評価を開始する |
async | HTMLのパースをブロックせずにパラレルでFetchする | Fetch完了直後にHTMLのパースをブロックしてJSの評価を開始する |
defer | HTMLのパースをブロックせずにパラレルでFetchする | HTMLのパースが完了したらJSの評価を開始する |
Module Scripts
fetch | evaluate | |
---|---|---|
[default] | HTMLのパースをブロックせずにパラレルでFetch、依存先もFetchする | HTMLのパースが完了したらJSの評価を開始する |
async | HTMLのパースをブロックせずにパラレルでFetch、依存先もFetchする | 依存先も含めたFetch完了直後に、HTMLのパースをブロックしてJSの評価を開始する |
module scriptsにはdeferつけてもデフォルトのまま。と説明あるけど、要はClassic Scriptsでのdefer属性付きと似たような動作がデフォルトということのよう。
昔読んだWebの基礎についての本にも載ってたのかもしれないけど、当時はそれを理解できるベースがなかったんだろうなと思うと感慨深い。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (183件) を見る
「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
- 作者: 小森裕介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/10
- メディア: 大型本
- 購入: 57人 クリック: 1,242回
- この商品を含むブログ (35件) を見る