【发布时间】:2015-06-25 16:55:38
【问题描述】:
就性能最佳实践而言,建议在页面底部加载 javascript。 AngularJS official documentation 对 Angular 应用也有同样的声明。
将脚本标签放在页面底部。在页面末尾放置脚本标签可以缩短应用程序加载时间,因为加载 angular.js 脚本不会阻止 HTML 加载。
我的网页充满了角度指令和角度绑定,并且我的 body 标记中没有任何静态 html 内容。一般建议是否仍然适用于我的网站?我希望此建议仅适用于具有静态内容和部分 angularJS 内容的网站。
如果我把我的角度放在底部,我假设首先我的 html 将被加载,然后是角度解析,然后再次 html 加载、解析和脚本执行将会发生。这是真的吗?如果我将我的角度放在页面顶部,我可以获得一些性能优势还是性能会变差?
我已将所有脚本合并并缩小为一个。我没有任何外部模板。我有带有一些数据投标的内联模板。你也可以假设我使用 ng-cloak 和 debugInfoEnabled false。
我的应用看起来像
<!DOCTYPE html>
<html ng-app="coreModule">
<head>
<title>Angular App</title>
<link rel="stylesheet" type="text/css" href="app.css">
</head>
<body>
<directive1></directive1>
<directive2></directive2>
..
<directive10000></directive10000>
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
我需要按以下方式使用吗?
<!DOCTYPE html>
<html ng-app="coreModule">
<head>
<title>Angular App</title>
<link rel="stylesheet" type="text/css" href="app.css">
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="app.js"></script>
</head>
<body>
<directive1></directive1>
<directive2></directive2>
..
<directive10000></directive10000>
</body>
</html>
【问题讨论】:
-
如果你没有静态 html,那你把你的 ng-app 放在哪里?
-
@lcycool,我的 body 标签内没有任何静态内容。我将 ng-app 应用于我的 html 标签
-
“如果我把我的角度放在底部,我假设首先我的 html 将被加载,然后是角度解析,然后再次发生 html 加载、解析和脚本执行。是真的吗?”试试看?发生了什么?
-
我认为性能方面几乎相同。即使您将 Angular 放在顶部,它仍然会首先呈现您的整个 HTML(我假设它很小,所以也没关系),然后获取模板等指令。
-
@atmd,我试过了。但我无法准确衡量差异。我担心如果我的页面增长它会变得更糟。
标签: javascript html angularjs performance