Angularjs 头部与身体的角度

Angularjs 头部与身体的角度,angularjs,html5boilerplate,Angularjs,Html5boilerplate,在所有AngularJS示例中,Angular库都放置在文档的HEAD标记中。我有一个基于HTML5样板布局的现有项目。这定义了JS库应该放在DOM的最底部,在标记之前 AngularJ是否需要放在头部?不一定 请看看这个。 AngularJS放在页面底部,如果放在顶部,仍然呈现相同的输出。AngularJS不需要放在头部,实际上通常不应该放在头部,因为这会阻止加载HTML 但是,当您在页面底部加载AngularJS时,您需要使用或避免“未编译内容的闪现”。请注意,您只需要在“index.htm

在所有AngularJS示例中,Angular库都放置在文档的HEAD标记中。我有一个基于HTML5样板布局的现有项目。这定义了JS库应该放在DOM的最底部,在
标记之前

AngularJ是否需要放在头部?

不一定

请看看这个。
AngularJS放在页面底部,如果放在顶部,仍然呈现相同的输出。

AngularJS不需要放在头部,实际上通常不应该放在头部,因为这会阻止加载HTML

但是,当您在页面底部加载AngularJS时,您需要使用或避免“未编译内容的闪现”。请注意,您只需要在“index.html”页面上使用ng-clope/ng-bind。当使用ng include或ng view或其他Angular构造在初始页面加载后拉入其他内容时,该内容将在显示之前由Angular编译


另请参见

关于谷歌集团的这一回答给了我完美的洞察力(简称):

这实际上取决于登录页的内容。如果大部分 是静态的,只有很少的AngularJS绑定 页面的底部是最好的。但如果是完全动态的 您希望尽快[在头部]加载AngularJS的内容

因此,如果您的内容在很大程度上是通过Angular生成的,您只需在头部包含Angular,就可以节省额外的CSS和
ng-Clope
指令


在页面底部加载角度JS确实会导致丑陋的{{something}html的闪现。在body标记中使用ng-clope指令会创建一个空的flash,直到加载JS为止,因此它不会比在head元素中加载AngularJS增加任何好处。您可以将ng斗篷添加到包含ng指令的每个元素中,但最终会出现一个空元素的闪光。所以,只需在head元素中加载Angular和你的app.js文件,正如Angular文档在其文档的这段引用中所建议的:“为了获得最佳结果,Angular.js脚本必须加载到html文档的head部分”

“将脚本标记放在页面底部。在页面末尾放置脚本标记可以缩短应用程序加载时间,因为加载angular.js脚本不会阻止HTML加载。“--对不起,我的措辞可能不正确。结束正文标记之前文档底部的脚本标记。:)最佳实践是按照您所说的将脚本放在正文的底部。但是,如果你的整个网站都是由angular驱动的,那么你是使用head还是body都没有关系,因为直到所有脚本都执行完毕,内容才会加载。谢谢。我知道它是有效的-我想我想知道这样做是否有任何后果,或者它是否因为任何原因被Angular团队所反对。在那个使用Chrome的例子中,我仍然得到了一个闪光。在主体上使用class=“ng-clope”,之后H1元素消除了模板标记的闪烁。鉴于angular.js文件添加了
ng-clope
样式规则(实际上是隐藏的),这不会仍然会闪烁未编译的内容吗?@StuCox,是的,但在我上面提到的答案中,它显示了您可以包含哪些CSS样式以避免出现问题。这似乎是一个非常奇怪的建议(即使是官方建议),因为您必须自己定义CSS规则,即使它将由脚本加载。冗余对于大多数Angular应用程序,在加载Angular之前不加载HTML实际上是有意义的——如果没有Angular,正文中的标记通常是无用的。