У меня есть массив объектов встроенного языка как таковые:Как дождаться загрузки скриптов, когда у меня есть массив скриптов?
_externalLibraries = [{name: 'knockout', url: '...'}, { name: 'knockoutValidation', url: '....'}];
Затем я попытался написать следующее:
loadLibraries: function() {
if (_externalLibraries.length === 0) {
return;
}
_externalLibraries.forEach(function(lib){
// Check if the libraries has been registered as "loaded."
var librarysAlreadyLoaded = _loadedLibraries.filter(function(libAlreadyLoaded){
return libAlreadyLoaded.name === lib.name;
});
// If it hasn't been loaded. Load it. This allows for mul;tiple widgets to be on the page.
// Or this file (for what ever reason) to be called multiple times.
console.log(librarysAlreadyLoaded);
if (librarysAlreadyLoaded.length === 0) {
$.getScript(lib.url, function(){
_loadedLibraries.push({name: lib.name});
});
}
});
},
В основном то, что я пытаюсь сделать, это сказать, загрузить библиотеку в этом массиве, если он еще не загружен. Если он не загрузил его и не добавил имя в массив «загруженных библиотек».
Проблема, по крайней мере, с проверкой нокаута и нокаута заключается в том, что «ko undefined». Как только после загрузки страницы, я могу ввести ko
в консоли и посмотреть, что она действительно загружена.
Что я могу изменить или добавить в код, чтобы заставить его сказать «Хорошо, мне нужно дождаться загрузки каждого скрипта в этом массиве». И тогда сделайте то, что еще я хочу сделать.
вы можете использовать что-то вроде requirejs так что вам не придется на карте зависит от себя? – dandavis
Нет, у нас нет этого в качестве опции для конкретного проекта. – TheWebs
достаточно справедливо. вам нужно указать, какие сценарии нужны, какие другие в вашем массиве объектов сценария, а затем не загружать одну из них, в которой были выгружены зависимости. это также означает, что простой одноразовый цикл загрузчика больше не будет работать, так как вам придется пересмотреть список, когда это произойдет, чтобы найти следующие логические скрипты для загрузки после получения любого сценария. или, вы строите сборку дерева зависит от времени, но это еще сложнее. – dandavis