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