頁面的載入順序時從上往下載入的:
1、dom樹載入到llink標籤
css檔案的載入和dom樹的載入是可以同時進行的,也就是說,css在載入時dom樹還在繼續構建。
這個過程中如果遇到css樣式或者img,會向伺服器傳送乙個請求,待資源返回後,將其新增到dom中的相應位置。
2、dom樹載入到script標籤
由於js是單執行緒模式,因此不會與dom並行載入,因此需要等到整個js檔案載入完後再繼續載入dom。倘若js檔案過大,則可能導致瀏覽器頁面顯示滯後,出現「阻塞效應」。
.js阻塞其他資源載入的原因是:瀏覽器為了防止js修改dom樹,需要重新構建dom樹的情況出現
3、解決方法
前提:js是外部指令碼
在script標籤中新增 defer=「ture」,則會讓js與dom並行載入,待頁面載入完成後再執行js檔案,這樣則不存在阻塞;
在scirpt標籤中新增 async=「ture」,這個屬性告訴瀏覽器該js檔案是非同步載入執行的,也就是不依賴於其他js和css,也就是說無法保證js檔案的載入順序,但是同樣有與dom並行載入的效果;
同時使用defer和async屬性時,defer屬性會失效;
可以將scirpt標籤放在body標籤之後,這樣就不會出現載入的衝突了。
關於html,css,js三者的載入順序問題
dom文件的載入順序是由上而下的順序載入 1 dom載入到link標籤 css檔案的載入是與dom的載入並行的,也就是說,css在載入時dom還在繼續載入構建,而過程中遇到的css樣式或者img,則會向伺服器傳送乙個請求,待資源返回後,將其新增到dom中的相對應位置中 2 dom載入到script標...
windowonload三者載入方法的區別
window.onload document ready function window load function 的區別吧!首先比較下window.onload與 document ready function 1.執行時間 window.onload必須等到頁面內包括的所有元素載入完畢後才能執...
STRCPY,MEMSET,MEMCPY三者的區別
memset 用來對一段記憶體空間全部設定為某個字元,一般用在對定義的字串進行初始化為 或 0 例 char a 100 memset a,0 sizeof a memcpy 用來做記憶體拷貝,你可以拿它拷貝任何資料型別的物件,可以指定拷貝的資料長度 例 char a 100 b 50 memcpy...