jQuery文档就绪 - 函数调用:顺序还是异步?

时间:2012-05-06 09:56:03

标签: javascript jquery function asynchronous onload

我认识到这个问题可能涉及到Javascript函数的运作方式(而不仅仅是我的特定情况),但......

我想知道我的文件准备功能......嗯......功能。以程式化的形式,它如下所示:

$(function () {
    object1.init();
    object2.init();
    object3.init(); etc...

object2.init()只会在object1.init()返回时触发?或者他们都会以异步方式开火?

更新:如果他们顺序开火,有什么方法可以让他们同时进行(我可能不需要这样做)?

感谢。

2 个答案:

答案 0 :(得分:3)

  

object2.init()只会在object1.init()返回时触发?或者他们都会以异步方式开火?

object2.init()仅在object1.init()返回时触发 所有函数都存储在一个队列中,并一个接一个地被触发。

没有办法让他们同时开火 不仅仅是jQuery,而且javascript不支持并行编程。


您可以看到jQuery源代码:

更新:我删除了实际代码,因为答案变成了迷你jQuery源代码......)

// Handle when the DOM is ready
ready: function(wait) {
    ...

// Call all callbacks with the given context and arguments
fireWith: function(context, args) {
    ...

jQuery.Callbacks = function( flags ) {  
    ...

// The deferred used on DOM ready
readyList,

检查jQuery source code

中的这些功能和变量

答案 1 :(得分:2)

它将按顺序运行。

如果其中一个init()执行了异步调用,那么显然会是异步调用,但每个函数(或实际的任何行)都将依次运行。