На каком этапе вы сжимаете / минимизируете JavaScript? - PullRequest
2 голосов
/ 01 марта 2009

При сборке или "на лету" (возможно, с кэшированием), когда пользователи запрашивают страницы.

И каковы недостатки / преимущества каждого.

Ответы [ 5 ]

7 голосов
/ 01 марта 2009

Когда сайт переходит с dev на живой сервер.

У меня всегда есть несжатая версия JS на сервере dev и свернутая версия на живом сервере.

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

2 голосов
/ 01 марта 2009

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

2 голосов
/ 01 марта 2009

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

Лично я бы сделал это при развертывании / сборке приложения, это действительно одноразовая вещь.

2 голосов
/ 01 марта 2009

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

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

1 голос
/ 01 марта 2009

Я согласен, что на лету, вероятно, нет необходимости (и съедает несколько циклов процессора), если JS не меняется.

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

Хорошей вещью при развертывании может быть также добавление некоторой метки времени или случайной строки в качестве параметра к ссылке JS (например, .../scripts.js?t=cdkjnsccsds7sc8cshcsjhbcs). Таким образом, когда JS изменяется, вы используете другую строку, и не будет проблем с кэшированием, потому что это новый URL. То же самое для CSS.

...