前端效能優化---將script標籤放在body之後

rosenWang發表於2018-12-18

script標籤的兩個屬性:async和defer

1.async:js代檔案與頁面dom元素,cssom元素的載入並行執行

2.defer:js檔案在頁面元素構建載入完成後在執行


script放在底部的原理:

script沒有script和defer時,js檔案下載完後會立即執行,這種情況下,script放在頂部會阻塞頁面呈現,在網速慢的情況下會導致“白屏”,直到指令碼下載完畢才繼續呈現頁面。因此,script放在底部可以讓頁面儘快呈現。


script全部放在head中會出現的問題:

在需要操作body中的某元素時,可能找不到該元素,因此,若要放在head中,一般需要繫結一個監聽windows.onload=function(){ ... },當文件全部解析完之後再執行script程式碼。


相關文章