3 回答

TA貢獻1818條經(jīng)驗 獲得超3個贊
這個問題的本質(zhì)不是 DOMContentLoaded
和 load
問題。
題主可以打開 devtools,選擇網(wǎng)絡(luò)
刷新頁面,可以看到:
兩者是同步發(fā)生的。
言外之意是,js 阻塞了頁面的載入和渲染。
那么我們再看一下性能面板:
我以第二種情況舉例。
點擊這個重新載入,或者使用快捷鍵:
我們會得到一個火焰圖,由于代碼很簡單,所以我們很容易定位。
由于之前頁面載入的時間是 2.6s,所以這次我們等待 3s 鐘:
可以很清楚的看到,console.log
先執(zhí)行的。

TA貢獻1860條經(jīng)驗 獲得超8個贊
首先,你聲明的是 js 的回調(diào)函數(shù),js 引擎在解析時碰到回調(diào)函數(shù)會將它拋到一個事件隊列中,在其它代碼執(zhí)行完且觸發(fā)條件出現(xiàn)時(此處觸發(fā)條件為 window.onload)才會執(zhí)行。
其次,window.onload 發(fā)生在所有文件加載完之后。

TA貢獻1831條經(jīng)驗 獲得超9個贊
jQ的
.ready()
對應(yīng)的是DOMContentLoaded事件,而不是load;.ready()
的推薦寫法是$(function(){});
或者jQuery(function($) {});
script寫在整個html根標簽之外?這是非標準寫法。
添加回答
舉報