Загрузка Jquery периодически вызывает не определенную ошибку

У нас есть приложение JavaScript, которое использует jQuery и имеет следующий блок, который загружает библиотеки. В большинстве случаев это работает нормально, но в случайное время библиотека jquery-1.11.2.min, похоже, не загружается вовремя для библиотеки jquery-ui.min, и поэтому я получаю ReferenceError, в котором говорится, что jQuery не определен в jquery-ui.min lib. Насколько я знаю, библиотеки должны загружаться последовательно, поэтому я не уверен, почему это происходит, поэтому любые идеи будут великолепны:

<script type="text/javascript">
    var dojoConfig = {
        async: true,
        paths: {
            "libs": location.pathname.replace(/\/[^/]+$/, '') + "/js/lib",
            "actions": location.pathname.replace(/\/[^/]+$/, '') + "/js/actions"
        },
        packages: [
            { name: "jquery", location: "//code.jquery.com", main: "jquery-1.11.2.min" },
            { name: "jqueryui", location: "//code.jquery.com/ui/1.10.3", main: "jquery-ui.min" },
            { name: "moment", location: location.pathname.replace(/\/[^/]+$/, '') + "/js/lib/moment", main: "moment" }
        ]
    };
</script>

1 ответ

Решение

Ваша проблема с async:true имущество

jqueryui зависит от jquery, поэтому вы должны загрузить jquery, а затем jqueryui, когда он асинхронный, он может загрузить jqueryui, а затем jquery, что приведет к ошибке

edit1, если вы хотите продолжить использовать async:true затем попытайтесь использовать свойство deps

from site: deps: Массив путей ресурсов, которые должны загружаться сразу после загрузки Dojo: deps: ["dojo / parser"]

deps (массив строк идентификатора модуля) / callback (функция) Эти переменные конфигурации применимы только до загрузки загрузчика. При наличии они заставляют загрузчик выполнять require(deps, callback) после завершения загрузки.

Другие вопросы по тегам