gggustafson Ответов: 1

Как я могу включить файлы javascript в другой браузер-агностическим способом


У меня есть несколько модулей JavaScript, которые содержат код, который должен быть разбит на отдельные модули. Однако, если я разделяю их, я должен включить операторы <script> в HTML-файлы, чтобы включить их до их использования. Например, предположим, что у меня есть код JavaScript, который включает ajax, cookie, размер шрифта, обработчик событий и некоторые утилиты общего назначения. Я хотел бы разделить их на:

ajax.js
cookie.js
font_sizing.js
event_handling.js
utilities.js

а затем включите файлы, по мере необходимости, в файл JavaScript. Если я разбиваю их, но не имею механизма включения, я вынужден включить в свой HTML что-то вроде следующего

&ЛТ;скрипт СРЦ="Scripts/ajax.js"&ГТ;&ЛТ;/скрипт>
&ЛТ;скрипт СРЦ="Scripts/cookie.js"&ГТ;&ЛТ;/скрипт>
&ЛТ;скрипт СРЦ="Scripts/font_sizing.js"&ГТ;&ЛТ;/скрипт>
&ЛТ;скрипт СРЦ="Scripts/event_handling.js"&ГТ;&ЛТ;/скрипт>
&ЛТ;скрипт СРЦ="Scripts/utilities.js"&ГТ;&ЛТ;/скрипт>

Я хотел бы, чтобы сами файлы JavaScript включали их по мере необходимости. Я просто не знаю браузерно-агностического метода для этого. Мне нужен только ванильный JavaScript.

Спасибо

Что я уже пробовал:

Поискал в интернете, как включить JavaScript-файлы в другой браузер-агностическим способом

1 Ответов

Рейтинг:
1

MadMyche

Обычно вы должны использовать один файл для всех javascripts страниц, чтобы уменьшить накладные расходы на несколько HTTP-вызовов, или иметь какой-то другой механизм (например, #include page, ~bundles), или просто сделать 5 различных элементов скрипта.

Проведя некоторые поиски я нашел некоторый код на переполнение стека который может помочь

Динамическая Загрузка Скрипта
Вы можете добавить тег скрипта с URL - адресом скрипта в HTML-код. Чтобы избежать накладных расходов jQuery, это идеальное решение.

Сценарий может даже находиться на другом сервере. Кроме того, браузер оценивает код. Тег {script} может быть введен либо в веб-страницу {head}, либо вставлен непосредственно перед закрывающим тегом {body}.
Из этого я пришел к этому, который основан на предоставленном коде и добавлен в ваши 5 примеров файлов. Возможно, вам придется поработать с получением URL-адресов для правильного разрешения, я бы сам использовал полностью квалифицированные. И, естественно, вы можете поместить это в совершенно отдельный файл.
function LoadScript(url) {
     var script = document.createElement("script");
     script.src = url;
     document.head.appendChild(script);
}
LoadScript("Scripts/ajax.js");
LoadScript("Scripts/cookie.js");
LoadScript("Scripts/font_sizing.js");
LoadScript("Scripts/event_handling.js");
LoadScript("Scripts/utilities.js");

Источник:
Как включить файл JavaScript в другой файл JavaScript? - переполнение стека[^]


gggustafson

"Вы можете добавить тег сценария с URL-адресом сценария в HTML. Чтобы избежать накладных расходов jQuery, это идеальное решение." К сожалению, это переносит включение файла из файла, в который он должен быть включен. Мне нравится ваша идея LoadScript. Позвольте мне немного подумать. Спасибо за ваши мысли.