更新時間:2021年10月25日10時54分 來源:傳智教育 瀏覽次數(shù):
在引入JavaScript腳本代碼時,頁面的下載和渲染都會暫停,等待腳本執(zhí)行完成后才會繼續(xù)這種加載方式稱為“同步加載”。“同步加載”也稱“阻塞模式”,它是JavaScript社代碼默認的加載方式,之所以要同步加載,是因為]avaScript中可能有輸出、修改等行為,所以默認同步執(zhí)行才是安全的。
定同步加載”也有弊端。同步加載完畢之前,頁面內容是無法正常顯示的,這就給網(wǎng)站訪問者帶來不好的用戶體驗。因此在代碼加載過程中,我們需要讓那些負責頁面內結構、樣式的代碼先加載,給用戶呈現(xiàn)一個美觀的界面效果,然后再加載后續(xù)的腳本代碼,這時就需要用到“異步加載”。“異步加載”也稱“非阻塞模式”,用于降低JavaScript阻塞問題對頁面造成的影響,使用<script>標記屬性async和defer都可以設置“異步加載”。下面將介紹這兩種屬性的使用方法。
1)async
添加async屬性后,頁面會先下載腳本文件,不阻塞結構代碼、樣式代碼的執(zhí)行,當腳本文件下載完成后再執(zhí)行該腳本文件,示例代碼如下:
<script src="http: //js.test/file.js" async></script>
2)defer
添加defer屬性后,頁面會先下載腳本文件,不阻塞結構代碼、樣式代碼的執(zhí)行,當頁面效果加載完成之后,再執(zhí)行腳本代碼,示例代碼如下:
<script src="http: //js.test/ile.js"defer></script>
值得一提的是,雖然async和defer于設置異步加載,但二者在腳本代碼下載完成之后的執(zhí)行方式有很大差別。添加async屬性,當腳本代碼下載完成之后會立即執(zhí)行腳本代碼:添加defer屬性,會等頁面效果加載完成之后再加載腳本代碼。
圖片懶加載實現(xiàn)原理?如何實現(xiàn)懶加載?
JavaScript for循環(huán)語句詳細介紹【JavaScript教程】