Javascript 转换期间AngularJS子窗体的性能
很抱歉,这不是一个纯粹的编程问题,只是试图理解为什么修复可以工作 我正在使用angular ui构建表单。当完成表单的步骤时,我有一个进行变换的滑动动画。这不一定是问题的一部分,因为我通常会在动画中获得60+fps 但是,表单的一部分是,如果用户在ajax调用中填充了多个子表单元素,那么将它们添加到dom中等操作太多,并且它们的抖动也很大 我通过对ng重复的子表单元素应用ng if=“isLoaded”来解决这个问题。然后在ajax调用完成时设置$scope.isLoaded=trueJavascript 转换期间AngularJS子窗体的性能,javascript,ajax,angularjs,angular-ui,Javascript,Ajax,Angularjs,Angular Ui,很抱歉,这不是一个纯粹的编程问题,只是试图理解为什么修复可以工作 我正在使用angular ui构建表单。当完成表单的步骤时,我有一个进行变换的滑动动画。这不一定是问题的一部分,因为我通常会在动画中获得60+fps 但是,表单的一部分是,如果用户在ajax调用中填充了多个子表单元素,那么将它们添加到dom中等操作太多,并且它们的抖动也很大 我通过对ng重复的子表单元素应用ng if=“isLoaded”来解决这个问题。然后在ajax调用完成时设置$scope.isLoaded=true <
<div ng-repeat="item in employmentHistory" ng-if="isLoaded" ng-form="subForm">
有人能解释一下为什么这会让动画表现得更好吗?我看了看时间线,看起来大部分火焰图都消失了
我知道ng如果不将元素添加到DOM中,这会有所帮助,但即使它在几秒钟后添加了元素,它似乎也帮了大忙
谢谢AFAIR ng if的工作方式是,在条件计算为true之前,元素不会加载到DOM中(或者,在条件计算之前,元素会从DOM中删除)。随着DOM的大小大大减小,您可能会看到性能的大幅提高
Ref:因此,在启动动画和加载dom之间的秒差非常有帮助!我很惊讶,实际上也很高兴修复这么简单。