准备执行jquery文件的顺序

假设,我有一个如下所示的js文件:

$(document).ready(function() { // first task} ); $(document).ready(function() { // second task } ); $(document).ready(function() { // third task } ); 

加载文件后,任务按顺序执行。 我无法理解为什么? 我猜测,当“就绪”事件发生时会触发callback方法。 执行订单如何保留? 连续的回电是否在某个地方排队?

注:我知道这是一个非常天真的编码方式。 我写了这个代码片段只是为了说明问题,不要在我的项目中编写这样的代码。

您的处理程序正在被推入一个数组 ( readyList )中,以便稍后在document 准备就绪时执行。

他们排队这样 :

 readyList.push( fn ); 

并准备好像这样执行 :

 var fn, i = 0; while ( (fn = readyList[ i++ ]) ) { fn.call( document, jQuery ); } 

如果文档已经准备好了,那么他们将立即执行,这仍然是有序的。

您指定的function按顺序添加到列表中。 当DOM准备就绪时,jQuery遍历该列表并按照该顺序调用函数。

你的名单变成类似..

 handlers = [ function(){ alert('first') }, function() { alert('second')} ]; 

然后循环遍历…

 for ( var i = 0, l = handlers.length; i<l; ++i ) { handlers.apply( document, arguments ) } 

这些函数在文档的上下文中被调用。

这不是更好,但在$(窗口).load内,你可以有更多的控制。 $(document).ready之后

 $(window).load( fn );