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。
posted @ 2019-09-11 11:37  贾各布  阅读(277)  评论(0编辑  收藏  举报