課程
/前端開發(fā)
/jQuery
/jQuery源碼解析(架構(gòu)與依賴模塊)
為何腳本解析二會(huì)在DomContentLoaded之前觸發(fā)
2014-11-16
源自:jQuery源碼解析(架構(gòu)與依賴模塊) 1-7
正在回答
個(gè)人理解:瀏覽器事件是異步發(fā)生的,jQuery的ready方法中(源碼)是這樣處理的(jquery2.1.1),1.使用setTimeout( jQuery.ready ),時(shí)間最小間隔;2.readyList = jQuery.Deferred(),事件隊(duì)列(順序);3.document.addEventListener( "DOMContentLoaded", completed, false ),completed方法調(diào)用自己,等保證ready方法是第一個(gè)DOM加載完后執(zhí)行的。頁面中的那個(gè)只能等前面的完成才執(zhí)行------事件異步
這個(gè)和jquery的引入順序有關(guān),如果把jquery在DOMContentLoaded 后引入的話,先執(zhí)行的是DOMContentLoaded,然后才是jquery。不信你把jquery的引入放底部試試。
舉報(bào)
由淺入深地剖析jQuery庫(kù)的設(shè)計(jì)與實(shí)現(xiàn),揭開框架背后的秘密
1 回答參數(shù)多觸發(fā)
4 回答關(guān)于DOMContentLoaded和ready的順序
3 回答ready和DOMContentLoaded順序問題
1 回答jQuery源代碼解析
4 回答resolve和done觸發(fā)時(shí)機(jī)先后的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-01-13
個(gè)人理解:瀏覽器事件是異步發(fā)生的,jQuery的ready方法中(源碼)是這樣處理的(jquery2.1.1),1.使用setTimeout( jQuery.ready ),時(shí)間最小間隔;2.readyList = jQuery.Deferred(),事件隊(duì)列(順序);3.document.addEventListener( "DOMContentLoaded", completed, false ),completed方法調(diào)用自己,等保證ready方法是第一個(gè)DOM加載完后執(zhí)行的。頁面中的那個(gè)只能等前面的完成才執(zhí)行------事件異步
2017-06-13
這個(gè)和jquery的引入順序有關(guān),如果把jquery在DOMContentLoaded 后引入的話,先執(zhí)行的是DOMContentLoaded,然后才是jquery。不信你把jquery的引入放底部試試。