Загрузка 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) после завершения загрузки.