2010-08-31 5 views
7

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

Мы создали плагин maven, чтобы объединить эти файлы вместе (также работает компрессор YUI). Тем не менее, это составляет 3-10 секунд для компиляции для каждого изменения.

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

+0

вы надежно надумали использовать flash или silverlight – Aviatrix

+0

Это очень много JavaScript! – ChaosPandion

+2

Посмотрите информацию о LabJS, RequireJS, возможно, додзё. Существуют сложные решения зависимостей. – Pointy

ответ

1

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

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

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

+0

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

0

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

Для разработки, вероятно, лучше всего просто импортировать их все в файл HTML. Это ускоряет процесс dev, а также упрощает отладку. Он также позволяет браузеру кэшировать некоторые из этих файлов.

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

0

Возможно, вы сэкономите много времени, запустив только компрессор. Компрессор YUI, как известно, медленный, потому что он использует интерпретатор Java Rhino для фактического анализа JavaScript и анализа его и т. Д.

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