Есть некоторые возможности для настройки приложения AngularJS, которые не так хорошо известны. Я опишу здесь некоторые из них.

Отключить отладочные данные

Когда вы посмотрите на свой DOM в режиме отладки, вы увидите что-то вроде этого

AngularJS нуждается в комментариях, где в качестве заполнителей используются директивы ngIf и ngRepeat; чтобы знать, куда вставлять элементы, которые должны стать видимыми. Но так ли уж необходимо видеть там такие классы?

... class="ng-binding ng-scope"... 

Нисколько! AngularJS не нуждается в этих классах. Они существуют только для лучшей поддержки отладки некоторых инструментов.

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

myApp.config(['$compileProvider', function ($compileProvider) {
  $compileProvider.debugInfoEnabled(false);
}]);

Результат следующий

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

angular.reloadWithDebugInfo();

Используйте ng-аннотации

Все используют в файлах AngularJS такие как провайдеры, директивы, фильтры и т. д. внедрение зависимостей. Но иногда бывает, что мы забываем упомянуть там еще и явно внедряемый объект в строковой форме, или просто делаем как правило DRY. В этих случаях мы можем использовать ng-annotate и запустить наше приложение для проверки.

<div ng-app="myApp" ng-strict-di>
  <!-- your app here -->
</div>

or

angular.bootstrap(document, ['myApp'], {
  strictDi: true
});

Отключить директивы класса комментариев и элементов css

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

$compileProvider.commentDirectivesEnabled(false);
$compileProvider.cssClassDirectivesEnabled(false);

Использование неизменяемых списков

Неизменяемые списки могут значительно повысить производительность AngularJS за счет радикального сокращения количества наблюдателей за дайджестами. Эта техника проста для понимания, но труднее ей следовать. Вы можете найти очень хорошую статью о неизменяемых данных от автора immutable-list для AngularJS. Проект, реализующий эту технику, называется angular-immutable project на github. Он основан на проекте immutable.js от Facebook.

Отключить устаревшие $httpпромисы об успехе и ошибках

Устаревшие методы обещаний $http success и error объявлены устаревшими. Вместо этого используйте стандартный метод then . Вы можете отключить поддержку прямо сейчас, чтобы немного улучшить производительность. Также вы получите ошибку, если используете дублирующие функции success и error.

$httpProvider.useLegacyPromiseExtensions = false;

Резюме

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

https://github.com/olov/ng-annotate
https://docs.angularjs.org/guide/production
http://blog.mgechev.com/2015 /03/02/immutability-in-angularjs-immutablejs/
https://github.com/mgechev/angular-immutable
https://facebook.github.io/immutable- js/docs/#/
https://docs.angularjs.org/api/ng/service/$http
https://en.wikipedia.org/wiki/Don% 27t_повторить_себя