从性能角度来看,使用ng-include Angular指令是否会导致包含的html被下载到用户的浏览器中作为自己的文件?
我没有使用节点服务器来提供HTML文件,我使用CDN像AWS CloudFront。
AngularJS是一个完全的客户端框架,所以,是的,它会下载每个模板,它不会预编译任何东西。
您可能希望在客户端构建过程中包含gulp-ng-templates之类的内容。这将生成一个单独的js文件,它将使用它们的自然URL将所有模板预加载到模板缓存中(因此您的其他代码不需要更改)
ng-include
将根据请求下载模板。因此,如果您使用ng-include
包含3个模板,这意味着3个ajax请求。
然而,你可以在你的index.html
中包含模板作为一个脚本使用type = text/ng-template
<script type="text/ng-template" id="my-tpl.html">
Content of the template.
</script>
:
<div ng-include="my-tpl.php"></div>
这样你就可以把所有的模板放在一个文件里了。