课程
/前端开发
/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触发时机先后的问题