3 延遲載入
4 預載入
常預設的是同步載入
src=
"">
script
>
同步模式又稱阻塞模式,會阻止瀏覽器的後續操作,相當於阻止了後續的檔案的解析,執行等。流覽器之所以會採用同步模式,是因為載入的
js
檔案中有對dom
的操作,重定向
,輸出document
等預設行為,所以同步才是最安全的。通常載入
js
檔案或者放標籤都在結構最後面,也是因為它會阻止瀏覽器後續操作的原因,所以放在後面,當頁面結構和樣式全部渲染完成再執行
js
,提公升使用者體驗
這個是es7
中的特性,async
顧名思義是「非同步」的意思,async
用於宣告乙個函式是非同步的。而await
從字面意思上是「等待」的意思,就是用於等待非同步完成
把插入script
的方法放在乙個函式裡面,然後放在window.onload
方法裡面執行,這樣就解決了阻塞onload
事件觸發的問題
當瀏覽器解析到script指令碼,沒有defer或async時,defer在延遲載入中會說到
src=
"main.js"
>
script
>
瀏覽器會立即載入並執行指定的指令碼,「立即」指在渲染該script標籤之下的文件元素之前,也就是說不等待後續載入的文件元素,讀到就載入並執行
當瀏覽器解析到script指令碼,有async時
async
src=
"main.js"
>
script
>
有些**在某種特定情況下才需要,並不是一股腦子都載入出來了,這個時候就需要延遲載入
這裡也是h5
的內容
當瀏覽器解析到script指令碼,有defer時
defer
="defer"
src="main1.js"
>
script
>
defer
="defer"
src="main2.js"
>
script
>
此時單純看這兩個需要被載入的相同點:非同步載入檔案js
檔案和其他html
的渲染,css
的載入,的載入等是同時進行的,是非同步操作但是單看
main1.js
和main2.js
又和同步的執行是一樣的,當載入main1.js
的時候,main2.js
會等待main1.js
載入完畢再載入這就是
defer
的作用了,當有defer
的時候,先架載入第乙個延遲指令碼
不同點:
async:雖然是非同步載入,但當有多個指令碼非同步載入的時候,不一定先載入哪乙個,載入順序不一定
defer:載入順序由第乙個延遲指令碼到最後乙個延遲指令碼
同步載入 非同步載入和延遲載入和預載入
常預設的是同步載入 1 src script 同步模式又稱阻塞模式,會阻止瀏覽器的後續操作,相當於阻止了後續的檔案的解析,執行等。流覽器之所以會採用同步模式,是因為載入的js檔案中有對dom的操作,重定向,輸出document等預設行為,所以同步才是最安全的。通常載入js檔案或者放標籤都在結構最後面...
同步載入 非同步載入和延遲載入和預載入
常預設的是同步載入 1 src script 同步模式又稱阻塞模式,會阻止瀏覽器的後續操作,相當於阻止了後續的檔案的解析,執行等。流覽器之所以會採用同步模式,是因為載入的js檔案中有對dom的操作,重定向,輸出document等預設行為,所以同步才是最安全的。通常載入js檔案或者放標籤都在結構最後面...
同步載入 非同步載入 延遲載入
一 同步載入 平常預設用的都是同步載入。如 同步模式又稱阻塞模式,會阻止瀏覽器的後續處理,停止了後續的檔案的解析,執行,如影象的渲染。流覽器之所以會採用同步模式,是因為載入的js檔案中有對dom的操作,重定向,輸出document等預設行為,所以同步才是最安全的。通常會把要載入的js放到body結束...