Один и тот же скрипт, использующий два js-файла? - PullRequest
1 голос
/ 11 января 2009

Признаюсь, я не слишком много знаю о javascript, в основном я просто "краду и изменяю" с Javascript.com и Dynamic Drive.
Я наткнулся на несколько скриптов, которые вызывают два файла .js

<script type="text/javascript" src="lib/prototype.js">  
</script>
<script type="text/javascript" src="src/aptabs.js">  
</script>  

и мне было интересно, почему, я могу безопасно объединить их оба с моим внешним javascript или есть какая-то несовместимость, которая не позволяет всему коду совместно использовать один и тот же файл?

Ответы [ 3 ]

4 голосов
/ 11 января 2009

Часто хорошо разделять код с разными проблемами. Эти два файла могут прийти из разных мест. Скажем, прототип обновлен, и вы хотите нового совершенства. Затем вы можете просто заменить файл prototype.js на своем сервере, а не редактировать огромный файл и выполнить операцию на нем.

РЕДАКТИРОВАТЬ: браузер также может лучше кэшировать файлы по отдельности. Если ваш вопрос связан с необходимостью дублирования этого блока кода в нескольких html-файлах, я предлагаю вам сделать один его фрагмент со стороны сервера и включить его в html-файлы любыми доступными способами / чувствовать себя комфортно.

2 голосов
/ 11 января 2009

На самом деле, лучше иметь их в одном файле - в зависимости от того, как устроен ваш сайт. Принцип состоит в том, чтобы уменьшить количество запросов http, поскольку каждый из них несет некоторые накладные расходы.

Тем не менее, это то, что лучше оставить до самого конца производства. Во время разработки легче разделить все. Если вы собираетесь присоединиться к ним, лучше всего иметь автоматический сценарий сборки для выполнения операций.

2 голосов
/ 11 января 2009

Я почти уверен, что javascript не знает, из какого файла он загружен, поэтому не должно быть проблемы при ее объединении, однако ...

Лично я бы держал их отдельно. Это упростит координацию управления версиями и т. Д. Для большинства повторных посещений скрипт все равно будет кэшироваться браузером, поэтому 2 на 1 не является большой проблемой. Но когда вы обновляете одно (или другое), клиенту нужно загрузить только половину. Но опять же, поскольку он обычно кешируется, это не важная персона!

Так что для простоты - сохраните сценарии в их первоначальных формах. Учитывая ваш вступительный комментарий «Я не слишком много знаю о javascript», это, безусловно, лучший подход; Я не имею в виду это пренебрежительно - просто, если что-то идет не так, вам не нужно искать, сломали ли вы это или уже сломали.

Редактировать: также легко упорядочить, например, если вы используете два сценария, которые используют ту же терминологию, что и $ в jQuery, который также поддерживает режим с явным присвоением имен.

...