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