Дубликат:Использовать JavaScript для вставки ссылок на скрипты по мере необходимости?
В Javascript нет директивы для «включения» или «импорта» другого файла js.
Это означает, что если script1.js использует функции / объекты, определенные в script2.js, то каждая страница html, которая включает script1.js, должна включать в себя script2.js перед ней.
Это не должно быть большой проблемой, если у вас есть только 2 js файла на 10 страницах html. Я имею в виду, тогда это управляемо!
Но предположим, что вы измените script1.js и улучшите его, используя функции / объекты, определенные в новом файле, script3.js
.
Проблема в том, что вы не можете просто указать script1.js включить script3.js, вместо этого вы должны запомнить каждый html-файл, который включает script1.js, и обновить его, чтобы включить script3.js!
Это кажется довольно глупым способом организации кода.
Есть ли рекомендуемые стратегии или практики для решения этой проблемы?
Было бы приемлемо иметь гигантский файл js, содержащий все функции, которые вы используете на веб-сайте?
Вы могли бы исправить это сами.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Использование динамики включает в себя:
Использовать JavaScript для вставки ссылок на скрипты по мере необходимости?
Я предполагаю, что вы можете использовать document.write в своих файлах JS, чтобы убедиться, что они включают все зависимости, от которых они зависят, хотя я бы не рекомендовал это ...
Scriptaculous (и, возможно, другие фреймворки) справляются с этим, записывая теги сценария для включенных файлов в документ при их загрузке. Ниже приведен соответствующий бит из файла scriptaculous.js, который позволяет загружать другие файлы во фреймворк.
var Scriptaculous = {
Version: '1.8.2',
require: function(libraryName) {
// inserting via DOM fails in Safari 2.0, so brute force approach
document.write('<script type = "text/javascript" src = "'+libraryName+'"></script>');
},
...
Лично я стараюсь избежать всей этой путаницы, сворачивая весь свой javascript в один файл. Если есть одна страница, для которой требуется МНОГО javascript, который другим страницам не нужен, тогда просто имейте два файла - как правило, JS для конкретной страницы может быть загружен после общего js в любом случае без проблем.
Чтобы объединить файлы JS в один, я использую Javascript Packer Дина Эдвардса в сочетании со вспомогательным скриптом, который я описал в моем блог. Это значительно упрощает работу со многими файлами JS (по крайней мере, для меня), а сжатие, которое вы получаете от упаковки javascript, лучше.
Открыт снова. Это не первый раз, когда указывается, что вы должны поместить дубликат, который вы закрыли, в начале вопроса.