Angularjs: ocLazyLoad против Requirejs

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

Я работал с require.js раньше, и это довольно хорошо, но проблема в том, что после того, как мы объединили и свернули наши файлы, мы получили 1.5M js-файл.

Так что я только что столкнулся с OcLazyload, и это выглядит многообещающе, но я видел много примеров в Интернете, которые используют и require, и ocLazyLoad, я немного смущен тем, почему вы захотите использовать оба. Разве они оба не делают одно и то же?

2 ответа

Решение

Вам нужны и ocLazyLoad, и RequireJS, потому что теперь вы имеете дело с двумя отдельными концепциями модулей - вашими модулями javascript и угловыми внутренними модулями.

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

RequireJS загружает только файлы JavaScript, но не регистрирует новые угловые модули и компоненты в этом новом коде

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

Итак, вы можете лениво загружать код, используя только RequireJS, но вы не можете загружать угловые модули и компоненты только с помощью RequireJS. Существует необходимость в дополнительной работе, например, в исполнении ocLazyLoad.

Вы можете использовать RequireJS с ocLazyLoad, но я не рекомендую его, это просто возможно, потому что люди просили меня сделать это, и его было легко интегрировать. Вам не нужен RequireJS, потому что ocLazyLoad включает в себя собственные загрузчики для файлов js / css / templates и может загружать любые типы файлов, а не только угловые модули.

Если вы хотите лениво загрузить модули Angular, вам потребуется библиотека, чтобы зарегистрировать их в Angular (или подождите, пока Angular 1.5 позволит вам это сделать).

Итог: вы можете использовать RequireJS с ocLazyLoad или просто ocLazyLoad (рекомендуется), но вы не можете использовать только RequireJS

Другие вопросы по тегам