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