大家先思考一下,對於前端來講,什麼時候會談論到加載方式?或者對於前端來講,文件的加載在什麼地方會用到?
我猜,你可能會想到的有:HTML中<script>標籤、<img>標籤,中的src會請求加載文件。
對於前端來講,涉及到文件加載的主要就是這兩種情況。
對於文件加載方式的選擇需要考慮兩方面:加載速率、文件依賴,爲了解決加載效率的問題,可以使用異步加載方式,如果要解決文件依賴問題,就要使用requirejs等模塊或處理庫。
同步加載:默認情況就是瀏覽器自上而下,解析HTML標籤->並加載文件->執行文件內容。
異步加載: 什麼是異步加載?異步加載是爲了實現在HTML解析完成之後再加載或執行JavaScript代碼,也就是說異步加載是爲了解決JavaScript代碼和HTML解析之間的衝突
異步加載的實現方法:動態腳本加載、defer、async(HTML5新增屬性)
async方法:HTML5中新增的屬性async,<script async defer src='siteScript.js' onload='init()'></script>
備註:
defer在html解析完成之後執行,按順序加載,然後按順序執行
async在加載完成後立即執行,執行順序和加載順序無關
1)同步加載主要針對信息量很小的情況,如果要加載的js文件或者圖片信息過大,會影響頁面渲染,使用戶體驗變差。
2)異步加載的方式:動態腳本加載、defer、async