2010-09-03 4 views
6

Просто хочу спросить у гуру об этом. Я знаю, что файлы CSS лучше объединяются, а не разделяются на два миллиона файлов. Работает ли js одинаково? Вот несколько моментов, я в настоящее время знаю (или верить ... так что вы можете указать что-то, если моя вера/понимание является неправильным):Хорошее кодирование: модульные файлы js или один большой файл js?

  • я знаю, что Js лучше модульный для облегчения технического обслуживания
  • это «рискованное «объединить все файлы в один, поскольку есть функциональные возможности, которые вы хотите просто на определенной странице.
  • Я знаю, что одновременные загрузки замедляют страницу, поэтому лучше всего сделать 1 большой файл.
  • слияние в 1 файл может вызвать проблемы с переменным охватом?
  • Я знаю, что есть компиляторы javacript ala bundle-fu или YUI, но является ли это ответом на всех? разные файлы для dev, а всего лишь 1 файл для js?

ответ

10

Вам не нужно использовать те же файлы для разработки и производства, чтобы вы могли использовать лучшее из обоих миров: модуляция для разработки и конкатенация для развертывания. Вот list of tools for concatenation and minification.

0

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

1

Я принимаю прагматичный подход для развертывания слияния + свернуть основные сценарии приложений (также называемые глобальными компонентами), а затем объединить + свести к минимуму сценарии для каждого раздела или каждой страницы (локальные компоненты). Это оставляет вам типично два или три сценария для загрузки, не включая вашу JS-библиотеку (read: jquery).

Вы редко хотите сбросить все на один большой файл смерти, потому что в общем случае маловероятно, что ваш посетитель собирается посетить каждую страницу и нужно каждый бит кода в их, так что это ложная экономия думать, что дает им все в одном ударе быстрее, чем давать им то, что им нужно, в нескольких распределенных хитах, особенно если вы рассматриваете загрузку исполняемого профиля скриптов (т.е. блокировку).

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

2

Это компромисс между увеличенными накладными расходами отдельных файлов и возможностью иметь код загрузки пользователей, который они никогда не будут использовать. Вы должны посмотреть, как пользователи используют ваше приложение.

Рассмотрите возможность использования сценария сборки, чтобы объединить ваши файлы.

Смежные вопросы