Вернуться к уроку

Скрипты с коллбэком

важность: 5

Создайте функцию addScripts(scripts, callback), которая загружает скрипты из массива scripts, и после загрузки и выполнения их всех вызывает функцию callback.

Скрипт может быть любым, работа функции не должна зависеть от его содержимого.

Пример использования:

addScripts(["a.js", "b.js", "c.js"], function() { a() });
/* функция a() описана в a.js и использует b.js,c.js */
  • Ошибки загрузки обрабатывать не нужно.
  • Один скрипт не ждёт другого. Они все загружаются, а по окончании вызывается обработчик callback.

Исходный код содержит скрипты a.js, b.js, c.js:

Открыть песочницу для задачи.

Подсказки

Создайте переменную-счетчик для подсчёта количества загруженных скриптов.

Чтобы один скрипт не учитывался два раза (например, onreadystatechange запустился при loaded и complete), учитывайте его состояние в объекте loaded. Свойство loaded[i] = true означает что i-й скрипт уже учтён.