AngularJS в HEAD против BODY

Во всех примерах AngularJS Угловая библиотека помещается в tags HEAD документа. У меня есть существующий проект, который был построен на макете Boilerplate HTML5. Это определяет, что библиотеки JS должны размещаться в самом низу DOM перед .

Должен ли AngularJS быть размещен в HEAD?

AngularJS не нужно размещать в HEAD, и на самом деле вы, как правило, не должны, так как это блокирует загрузку HTML.

Однако, когда вы загружаете AngularJS в нижней части страницы, вам нужно использовать ng-cloak или ng-bind, чтобы избежать «вспышки несжатого содержимого». Обратите внимание, что вам нужно всего лишь использовать ng-cloak / ng-bind на странице “index.html”. Когда ng-include или ng-view или другие Angular-конструкции используются для добавления дополнительного содержимого после начальной загрузки страницы, этот контент будет скомпилирован Angular перед его отображением.

См. Также https://stackoverflow.com/a/14076004/215945

Этот ответ в группах Google дал мне полное представление (сокращенно):

Это зависит от содержания целевой страницы. Если большинство из них является статичным только с привязками AngularJS, чем да, я согласен, нижняя часть страницы – лучшая. Но в случае полностью динамического контента вы хотели бы загрузить AngularJS ASAP [в голове].

Поэтому, если ваш контент генерируется в значительной степени через Angular, вы бы сэкономили дополнительные инструкции CSS и ng-cloak , просто включив Angular в голову.

https://groups.google.com/d/msg/angular/XTJFkQHjW5Y/pbSotoaqlkwJ

Не обязательно.

Взгляните на этот http://plnkr.co/edit/zzt41VUgR332IV01KPsO?p=preview . Если угловой js помещен в нижней части страницы и все равно отображает тот же результат, если он должен быть расположен наверху.

Загрузка Угловая JS в нижней части страницы приводит к ошибке уродливого {{something}} html. Использование директивы ng-cloak в теге body создает пустую вспышку до тех пор, пока JS не будет загружен, поэтому она не добавит никакой пользы, а просто загрузит AngularJS в элемент head. Вы можете добавить ng-cloak к каждому элементу с ng-директивами, но вы получите вспышку пустых элементов. Soooo, просто загрузите Angular и ваши файлы app.js в элемент head, так как документация Angular рекомендует в этой цитате из их документации: «Для достижения наилучшего результата скрипт angular.js должен быть загружен в раздел главы html-документа»,

Давайте будем гением компьютера.