Подтвердить что ты не робот

Как вы управляете своими файлами Javascript?

В настоящее время у нас есть множество библиотек Javascript на странице в дополнение к файлам Javascript, которые мы пишем сами. Как вы их управляете? Как вы их организовываете организованно?

4b9b3361

Ответ 1

Организация

Все мои скрипты хранятся в структуре каталогов, которые я отслеживаю, когда я работаю на сайте. Структура каталогов обычно выглядит примерно так:

+--root
   |--javascript
      |--lib
         |--prototype.js
         |--scriptaculous
            |--scriptaculous.js
            |--effects.js
            |--..
      |--myOwnScript.js
      |--myOwnScript2.js

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

Сжатие

Хотя есть много разных компрессоров и обфускаторов, я всегда возвращаюсь к YUI Compressor.

Включение

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

Ответ 2

Прежде всего, Компрессор YUI.

Сохранение их организации зависит от вас, но большинство групп, которые я видел, имеют только , придумывают соглашение, что имеет смысл для их применения.

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

Вы также можете рассмотреть возможность разделения вашего javascript на сегменты, которые легко распределяются по всей команде.

Ответ 3

Кэл Хендерсон (из славы Flickr) написал время обслуживания JavaScript Fast некоторое время назад. Он охватывает доставку активов, а не организацию, но может ответить на некоторые из ваших вопросов.

Здесь указаны точки пули:

  • Да, вы должны объединить файлы JavaScript в процессе производства, чтобы свести к минимуму количество HTTP-запросов.
  • НО вы можете не захотеть объединиться в один гигантский файл; вы можете разбить его на логические части и распространить стоимость перевода на несколько страниц.
  • gzip-компрессия хороша, но вы не должны обслуживать gzip-ресурсы для IE <= 6, поэтому вы также можете минимизировать/сжать свой JavaScript.

Я добавлю несколько маркеров:

  • Вы должны придумать решение, которое будет работать как для разработки, так и для производства. В режиме разработки он должен запрашивать дополнительные файлы JavaScript по требованию; в производстве он должен все рассказать заранее. Переход от одного поведения к другому должен быть таким же простым, как установка флага.
  • Rails 2.0 обрабатывает все это с помощью кэша ресурсов; другие веб-приложения могут предложить похожие решения.
  • Как следует из другого ответа, размещение сторонних библиотек в каталоге lib является хорошим началом. Вы можете также разделить свои JS файлы на подкаталоги, если это имеет смысл. В идеале вы сможете упорядочить их таким образом, чтобы файлы в данном подкаталоге могли быть объединены в один файл.

Ответ 4

У меня будет папка для всех javascript и подпапка для сторонних/разделяемых библиотек и подпапок для каждого компонента сайта, чтобы все было организовано.

Например:

/
+--/javascript/
    +-- lib/
    +-- admin/
    +-- compnent1/
    +-- compnent2/

Затем запустите все через minifier/obfuscator во время процесса сборки.

Ответ 5

Я использовал это в последнее время: http://code.google.com/apis/ajaxlibs/

И тогда у меня есть папка "jscripts", где я сохраняю свой код.

Ответ 6

В моем последнем проекте у нас было три вида JS файлов, все из которых находятся в папке JS.

  • Код библиотеки. Множество функций, используемых на большинстве страниц, поэтому они были объединены в один или несколько файлов.
  • Классы. У них были свои файлы, организованные в папках по мере необходимости, но не обязательно так.
  • Специальный JS. Код, который был специфичен для этой страницы. Они были сохранены в файлах с тем же именем, что и страницы JSP, которые они должны были запускать.

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

Ответ 7

Это может быть другой подход, чем то, что вы ищете, но я играл с идеей шаблонов JavaScript в нашем блоге. В двух словах вы назначаете шаблон Javascript для идентификатора страницы, используя базу данных, и он будет динамически включать и минимизировать все файлы JavaScript, связанные с этим шаблоном, и создавать файл в кеше на стороне сервера с идентификатором шаблона в качестве имени файла. Когда страница загружается, она вызывает файл шаблона, который сначала проверяет, существует ли файл в кеше и загружает его, если он это делает. Если он не существует, он создает его "на лету" и включает его. Я также использую файл шаблона для gzip файла конгломерата JavaScript.

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