То, что я пытаюсь сделать, динамично включают один или несколько js файлов из JavaScript. Я знаю, что существует набор методов для этого, но я ищу решение, которое следует этим правилам:
1) Не используют любые платформы JS или библиотеки (jQuery, Прототип, и т.д.).
2) Сценарий должен остановить выполнение, пока внешний js файл полностью не загружается и анализируется браузером.
Рациональным позади № 2 является внешний js файл, будет включать функциональные определения, которые должны сразу использоваться после того, как сценарий включен. Большую часть времени браузер не имел времени для парсинга js файла, прежде чем я начну вызывать те функции.
Я не возражаю использовать обратный вызов для знания, когда сценарий закончен, загрузившись, но:
1) Я не знаю заранее, сколько сценариев будет динамично включенными, таким образом, я не хочу и не могу записать набор вложенных обратных вызовов. Я просто должен знать, когда они все закончены, загрузившись.
2) Я формулирую ту попытку использовать некоторое событие "загрузки" для увольнения, обратный вызов не мог бы работать, если браузер кэшировал JavaScript.
Редактирование я должен был упомянуть от запуска, что это для сменной системы, но я хотел сохранить свой вопрос/ответ достаточно универсальным, чтобы быть полезным другим людям.
Пользователи определили бы, какие плагины они хотят загрузить в массиве.
plugins = [ 'FooPlugin', 'BarPlugin' ];
Я затем циклично выполнился бы через массив и загрузил бы js сценарий для каждого плагина:
for(var i = 0; i < plugins.length; i++) {
loadScript('plugins/' + plugins[i] + '.js');
}
Каждый плагин продвигает себя на массив loaded_plugins (Это - пример FooPlugin.js),
load_plugins.push({
name: 'FooPlugin',
// Other plugin methods and properties here
});