我一直在研究一个导致性能问题的复杂角度页面.为了突出问题,我在这里创建了一个小提琴http://jsfiddle.net/4ex2xgL1/3/.
本质上,性能问题是由具有函数的ng-class语句引起的.
<span class="done-{{todo.done}}" ng-class="myfunction()">{{todo.text}}</span>
Run Code Online (Sandbox Code Playgroud)
跨度是ng-repeat.在运行小提琴时,可以看到ng-class在页面加载时被执行多次,并且在每个键上,它被调用与TODO列表中的项目数一样多的时间.
这是一个更简单的情况,在我的情况下,我的页面上有780个项目,该功能最终被评估为3000次!
我们看到的解决方案之一是打破范围,但它几乎会导致我的应用程序重写.
我们还尝试了https://github.com/Pasvaz/bindonce,但它似乎不适用于高度动态的内容.
有什么想法吗?