AMD или конкатенация + минификация?

Какой подход обеспечивает наибольшую скорость загрузки и работы web-приложения? Асинхронная подгрузка модулей по мере необходимости (например, с помощью requirejs), или конкатенация всего JS в один файл (с последующей минификацией)?

Можно предположить, что AMD оправдано, когда в приложении очень большой объем кода, и лучше грузить его частями, а "склейка" в один файл больше подходит для небольших приложений. Но, может быть, загрузка отдельных модулей замедлит работу приложения в целом?
  • Вопрос задан
  • 2656 просмотров
Решения вопроса 2
zoonman
@zoonman
⋆⋆⋆⋆⋆
Загрузка действительно замедляется. У нас сейчас приложение из примерно 30 модулей и весьма заметен прирост в скорости загрузки, если все собирать в один бандл. Особенно заметно стало после перехода внутрь SSL-туннеля. Подобное рекомендуется делать и для CSS тоже.
Модуляризация хороша и удобная для разработки, отладки и тестирования, но в продакшене лучше использовать оптимизированную версию.
Ответ написан
Комментировать
Serhioromano
@Serhioromano
Web Developer
Можно предположить, что AMD оправдано, когда в приложении очень большой объем кода, и лучше грузить его частями, а "склейка" в один файл больше подходит для небольших приложений.


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

Например приложение которое мы разрабатываем модульное. Модули могут писать 3d party. В конечном итоге, у человека может быть установлено 20мб минифицированого кода. Конечно можно было бы это все в одни файл, но проблема в том что конечный клиент который посещает сайт, можно вобще не зайти в другой модуль ни когда. Так зачем его грузить?

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

Войдите, чтобы написать ответ

Похожие вопросы