我正在使用 AngularJS 编写一个复杂的多组件应用程序。目前,主要组件已准备就绪,我想提高应用程序的性能。
经过短暂的实地调查后,我发现了一些非常有用的资源:
11 Tips to Improve AngularJS Performance
Improving AngularJS wep app performance example
AngularJS Performance in large applications
无论如何,我需要关于几个主题的一些额外建议:
<强>1。脚本和服务/工厂加载
- 目前,所有脚本都在底部加载
<body></body>
里面的标签index.html
。因此,当用户直接加载ui-route
时或者我们只是重新加载给定页面,所有脚本都会再次加载。 我只想在使用给定脚本的状态下加载脚本。 - 服务/工厂/等。以相同的方式加载。这会导致不需要给定的页面,例如由于数据负载大,加载它的服务会降低性能。 仅当当前状态需要它们时,我才需要初始化/加载它们。
<强>2。翻译/本地化
- 我正在使用 Angular Translate - i18n Reference ,但是当我翻译页面元素时,我必须使用例如
<button>{{btnName | translate}}</button
。这项技术和过滤器的整体使用被认为是最大的性能缺陷之一。该页面有很多元素,因此这确实可能会减慢加载速度。 有没有更好的解决方案或解决方法?
<强>3。总体
- 我已阅读
ng-repeat
上的多个线程及其track by
功能,所以我认为它已完成,但我仍然不是 100% 确定我理解$digest
($apply
) 正确循环。 - 我读到一些评论说我们应该“避免将任何东西直接绑定(bind)到函数”,但我不太明白。
欢迎任何有关 AngularJS 及其性能的其他评论或建议!
Thank you :)
最佳答案
阅读上面的内容,看起来您已经尝试过优化 AngularJS 本身。但是,没有提及构建过程的优化。我想您最好研究一下 Grunt 或 Gulp。使用这些工具,您可以将所有 JavaScript 连接并缩小为一个缩小的文件。这样,您在初始化站点时就只有一次性有效负载。
检查这个https://medium.com/@dickeyxxx/best-practices-for-building-angular-js-apps-266c1a4a6917
关于javascript - 多层面提高 AngularJS 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31537659/