Готовые очереди jQuery $ (foo) и $ (bar) будут работать последовательно или параллельно? - PullRequest
1 голос
/ 21 июля 2010

Если есть 2, 3 или 20 операторов, использующих jQuery

$(function() { ... })

для добавления функций, которые будут выполняться, когда DOM будет готов, все эти функции будут работать параллельно или работать последовательно?

Ответы [ 3 ]

5 голосов
/ 21 июля 2010

document.ready ведет себя как обычное событие в этом отношении, они происходят в последовательности и в том порядке, в котором они были связаны . Вы можете увидеть соответствующий исходный код jQuery здесь :

Вот что происходит, когда вы делаете $(function):

ready: function( fn ) {
    jQuery.bindReady();
    if ( jQuery.isReady ) {
        fn.call( document, jQuery );
    } else if ( readyList ) {
        readyList.push( fn );
    }
    return this;
}

И это происходит позже, когда срабатывает событие «готово»:

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

Если документ уже готов, функция выполняется немедленно, это часть if в первом блоке кода выше.

3 голосов
/ 21 июля 2010

Они будут работать в последовательности.Код Javascript не работает параллельно.

3 голосов
/ 21 июля 2010

они будут выполняться в последовательности. Вы можете поместить точки останова в firebug, чтобы увидеть это поведение

...