1、一般做法
一般我們會把所有的<script>元素都應該放在頁面的<head>標簽里,但由於是順序加載,因此只有當所有JavaScript代碼都被依次下載、解析和執行完之后,才開始加載<body>標簽里面的內容。
2、把<script>標簽放在<body>標簽最后面
這樣會先加載、解析頁面元素,而后再加載JS代碼,直觀表現上就是頁面打開速度有所提升。當然需要注意的是,如果頁面需要用到某個JavaScript文件,那這個JS文件的引用還是需要放在頁面元素之前,如放在<head>標簽里。
3、加defer屬性
在<script>標簽中加入defer屬性,該defer屬性相當於告訴瀏覽器立即下載腳本,但延遲執行。腳本會在整個頁面元素解析完成后再運行。
4、加async屬性
在<script>標簽中加入async屬性,該屬性與defer屬性類似,相當於告訴瀏覽器立即下載腳本,但是是異步下載,下載順序不確定,執行速度也不確定。
這個屬性可用於在網絡不通的環境下,需要引入某個互聯網腳本資源的時候,依然可以快速打開頁面,這樣不至於因為個別腳本訪問不到而阻塞后面資源的請求。
