转换过程中的AngularJS SubForm性能

时间:2015-05-15 15:55:29

标签: javascript ajax angularjs angular-ui

对不起,这不仅仅是一个编程问题,只是想了解修复工作的原因。

我使用angular-ui并构建表单。完成表单的步骤时,我有一个滑动动画,可以进行转换。它不一定是问题的一部分,因为在动画期间我通常会得到60+ fps。

然而,表单的一部分,如果用户有多个子表单元素填写了ajax调用,将它们添加到dom等等太多了,它们会产生很多抖动。

我通过应用ng-if =" isLoaded"来解决这个问题。到ng重复的子表单元素。然后在ajax调用完成时设置$ scope.isLoaded = true。

<div ng-repeat="item in employmentHistory" ng-if="isLoaded" ng-form="subForm">

有人可以解释为什么这会使动画效果更高吗?我查看了时间轴,看起来大部分火焰图都消失了。

我知道ng-if并没有将元素添加到DOM中,所以这会有所帮助,但即使它在一小段时间内完成,它似乎也会有很大的帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

AFAIR ng-if的工作方式是,在条件求值为true之前,元素不会被加载到DOM中(或者在条件求值之前它们被从DOM中删除)。随着DOM的大小大幅减少,您可能会看到性能大幅提升。

参考:https://docs.angularjs.org/api/ng/directive/ngIf