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

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

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


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

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

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

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

Войти через центр авторизации
Похожие вопросы