圖解外聯(lián)script加載
如圖所示,結(jié)論:
- 普通script的加載與執(zhí)行是阻塞DOM渲染的七蜘,其順序取決于script標(biāo)簽在文檔中的位置,并且會在DOMContentLoaded事件之前執(zhí)行完畢
- 標(biāo)有async的script加載與執(zhí)行都是異步的,不阻塞DOM渲染翰蠢,但是無法保證順序,會在load事件前執(zhí)行完畢啰劲,但無法保證在DOMContentLoaded事件的前或后
- 標(biāo)有defer的script加載是異步的梁沧,但是執(zhí)行會在所有DOM渲染之后,在DOMContentLoaded事件之前蝇裤,順序取決于script標(biāo)簽在文檔中的位置
- 標(biāo)有defer的外部script在各個瀏覽器的表現(xiàn)比較一致廷支,但如果是內(nèi)聯(lián)script的情況频鉴,只在IE中支持較好,所以盡量避免內(nèi)聯(lián)script使用defer
image.png