document ready handler 執(zhí)行之前都干了些什么

1、先聊聊什么是document ready handler ?
了解jQuery的開發(fā)者估計(jì)都寫過這樣的代碼:
$(document).ready(function(){
// ......
});

這段代碼就是jQuery中封裝的ready()方法(document ready handler),其實(shí)原生js中沒有ready方法,標(biāo)準(zhǔn)瀏覽器下,jQuery實(shí)際調(diào)用的是DOMContentLoaded事件,老版本的瀏覽器不支持這個(gè)事件,jQuery檢測(cè)到瀏覽器不支持DOMContentLoaded事件,就會(huì)調(diào)用window.onload事件。

2、DOMContentLoaded 和 onload 的區(qū)別:

先說說window.onload事件什么時(shí)候觸發(fā):
onload事件是在頁面DOM樹生成完成后,并且所有的外部資源全部加載完成時(shí)觸發(fā)。這里的外部資源包括圖片、音/視頻等,如果外部資源比較多,用戶等待的時(shí)間就會(huì)很長(zhǎng),用戶體驗(yàn)很差。有沒有什么事件在DOM書渲染完成后就開始執(zhí)行,這樣用戶等待的時(shí)間就會(huì)大大縮減。這就是下面介紹的另一個(gè)事件:DOMContentLoaded

DOMContentLoaded事件正如上面所說,當(dāng)頁面DOM樹渲染完成后就開始執(zhí)行,而不需要等待其它外部資源加載,這樣會(huì)提高用戶體驗(yàn)。這也是推薦大家使用的事件。。。

3、總結(jié):A representation of the steps performed by browsers before the document-ready handler is executed

Page downloaded → HTML parsed → DOM created → Document ready fired → Handler executed

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容