jQuery getScript

Я сейчас застрял в использовании нескольких библиотек JavaScript, которые ДОЛЖНЫ загружаться в очень определенном порядке. Поскольку getScript () jQuery является асинхронным, он очень быстро начинает загрузку всех скриптов и, по мере их завершения, выполняет их. Поскольку они не выполняются по порядку, я получаю несколько ошибок, исходящих от библиотек.

К сожалению, я не могу изменить или модифицировать ни одну из этих библиотек. Я пытаюсь использовать метод, который загружает библиотеку JavaScript и в обратном вызове вызывает сам себя, пока не закончит загрузку всех библиотек.

Это работает для первого файла. Когда появляется второй файл, он теряет контекст внутри обратного вызова, и я больше не могу вызывать свой рекурсивный метод.

Есть идеи?

Урезанная версия кода:

function loadFiles (CompletedCallback) {
    var Files = getFiles(); // This is an array of js files to load
    var currentFileIndex = 0;

    function processFile (file) {
        $.getScript(file[currentFileIndex], $.proxy(function () {
            ++currentFileIndex;
            if (currentFileIndex === Files.length) {
                CompletedCallback();
            } else {
                processFile(Files[currentFileIndex]);
            }
        }, this);
    };

    processFile(Files[currentFileIndex]);
};
8
задан Kris 16 August 2011 в 19:00
поделиться