jQuery源码分析(5) - jQuery的ready()到底何时执行
把以前看的jQuery源码的分析笔记搬到博客上,重温经典,也是为了方便查询。
var jQuery = function(){};
jQuery.extend({
isReady: false,
ready: function(wait){
if(!document.body) {
return setTimeout(jQuery.ready);
}
jQuery.isReady = true;
}
});
document.body 还不存在时,DOMContentLoaded未完成,于是将jQuery.ready放入setTimeout,
由于setTimeout属于宏任务,会将jQuery.ready事件放入宏任务队列后,等待同步的宏任务结束后,才会执行。
所以,只有等到重绘完成即DOMContentLoaded之后,才会执行jQuery.ready。