【问题标题】:AngularJS performance for select选择的 AngularJS 性能
【发布时间】:2014-08-19 16:04:39
【问题描述】:

<select> 中显示许多项目时,AngularJS 的性能出现问题。我创建了一个可以看到问题的小提琴:

http://jsfiddle.net/2W7Kx/1/

选择一个项目需要几秒钟。

有趣的是,该问题仅在第一次选择项目时出现。之后,选择一个项目很快。

为什么?是什么导致了这种缓慢?有解决办法吗?

【问题讨论】:

  • @Blackhole:谢谢,你是对的。现在应该是正确的。
  • 这很慢,因为 $scope 正在监视您创建的所有 25,000 个选项,以查看其中是否有任何更改。我相信有一种方法可以停止观看它们,但我不确定如何。查找 $digest 和 $watch。这是一个现实的场景 - 您将在下拉菜单中有 25k 个选项吗?如果是这样,愿上帝怜悯你的灵魂。 :)
  • 不,现在 25k 是不现实的,但 2.5k 是我的应用程序中的项目数。我在小提琴中添加了 25k,只是为了说明一点,以便清晰可见。对我来说 2.5k 会导致明显的延迟,这很烦人。

标签: javascript performance angularjs profiling angularjs-ng-options


【解决方案1】:

我相信“为什么”和“是什么”是由于 Angular 使用脏检查来呈现内容的方法。这是一个更深入的答案:How does data binding work in AngularJS?。此外,Angular 文档中有一些关于范围渲染的有用信息,可能会为您提供更多的信息。 https://docs.angularjs.org/guide/scope.

【讨论】:

    猜你喜欢
    • 2012-11-28
    • 1970-01-01
    • 2018-07-05
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2012-02-08
    相关资源
    最近更新 更多