Javascript "включает" стратегии

Дубликат:Использовать 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, содержащий все функции, которые вы используете на веб-сайте?

Открыт снова. Это не первый раз, когда указывается, что вы должны поместить дубликат, который вы закрыли, в начале вопроса.

GEOCHET 25.11.2008 04:13

Вы могли бы исправить это сами.

FlySwat 25.11.2008 04:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
1 183
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Я предполагаю, что вы можете использовать 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, лучше.

Другие вопросы по теме