$get.Scope.$eval
需要超过100毫秒的时间。在单个$digest循环中,至少有3个长时间的$get.Scope.$eval
情况,我想优化这部分。在分析器中,我只看到了调用angularjs代码之后的
$get.Scope.$eval
。以下是分析图表的截图。
请问有人能够建议一下,发生了什么以及如何优化这部分代码?我认为这可能是由于ng-repeat
、ng-include
或ng-if
引起的,但我不确定。
更新:
这是我应用程序的简化结构。可能问题在于我的应用程序架构。该应用程序大多数情况下都在单一路由上工作,并且仅在三种情况下更改它,因此应用程序将状态存储在全局控制器AppController
中 - 肥大的控制器。此外,HTML中有20k+节点,数量可能会增长(我看到的最大值是60k)。
and
和::
,以及Batarang并尝试减少观察者的数量。我只有不到2k个观察者,但应用程序非常缓慢。可能我使用的架构是错误的,但这是另一个问题。 - uladzimirng-if
、ng-show
和ng-repeat
,但没有改变路由。每当用户执行操作后,我的 300 多个作用域都需要被消化。可能$eval
尝试评估我的嵌套ng-include
中的大量内容,但我不确定,正在尝试通过提问来理解它。 - uladzimirAppCtrl
中。 - uladzimir