【发布时间】:2015-10-20 16:55:32
【问题描述】:
) 首先,我只想对这个伟大的项目表示感谢。
我们将 ui-grid 集成为 table-grid 的一部分,由于某些未知原因,ui-grid 生成的手表数量对于我们尝试处理的数据量来说是巨大的。
例如: grid - 9 列表格,包含 20 行基于简单文本的单元格,没有任何自定义单元格模板
检查 $watches 我们得到了 960 块手表。
为了调试这个问题,我们打印了每个关注他的元素,大多数时候我们得到了这种元素:
[div#1445359168448-19-uiGrid-001Z-cell.ui-grid-cell.ng-scope.ui-grid-coluiGrid-001Z, context: div#1445359168448-19-uiGrid-001Z-cell.ui-grid-cell.ng-scope.ui-grid-coluiGrid-001Z]0: div#1445359168448-19-uiGrid-001Z-cell.ui-grid-cell.ng-scope.ui-grid-coluiGrid-001Zcontext: div#1445359168448-19-uiGrid-001Z-cell.ui-grid-cell.ng-scope.ui-grid-coluiGrid-001Zlength: 1__proto__: n[0]
watchers 4
每个单元格元素有 2-4 个手表。
我们使用带有基本 columnDefs(字段 + 显示名称)的简单数据结构。
在大多数情况下,我们不需要观察特定网格单元中的机会。
我们可以做些什么来减少 ui-grid 创建的 $watches 的数量?
提前致谢, 高兴。
【问题讨论】:
-
查看此文档 - github.com/angular-ui/ui-grid/blob/master/misc/tutorial/…。有一个名为 'fastWatch' 的选项,在你的 'gridOptions' 中将其设置为 true 将使 Angular 只关注数据数组和引用的长度,而不是每个特定的索引。
-
10x 。我使用了 fastWatch 选项,但 $watchs 计数没有变化:-(
-
您是否尝试过“flatEntityAccess”中提到的其他选项?
-
是的。没有看到任何重大影响。 10 倍 :-)
标签: javascript angularjs performance angular-ui-grid