减少ui-grid创建的$ watch的数量

时间:2015-10-20 16:55:32

标签: javascript angularjs performance angular-ui-grid

) 首先,我只想对这个伟大的项目表示感谢。

我们将ui-grid集成为表格网格的一部分,由于某些未知原因,ui-grid生成的监视数量对于我们尝试处理的数据量来说是巨大的。

例如: grid - 9列表,包含20行简单的基于文本的单元格,没有任何自定义单元格模板

检查$ watch我们得到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创建的$ watch的数量?

提前谢谢, ELAD。

1 个答案:

答案 0 :(得分:0)

作为一个结论 - 使用行* col $$观察者用作性能提升的一部分来使用滚动虚拟化。任何解雇这个behivor的方法都没有用。

我们决定使用smart table使用其他方法 它的轻量级,我们喜欢它不封装/隐藏表/网格布局创建的想法,而是它的一组指令(插件)允许你以声明的方式组成表行为。

使用声明方式=使用角度ng-repeat并直接查看表格模板,它非常简单,不太容易给CSS dev添加样式。

我们仍然无法将其用作CRM解决方案的复杂网格基础架构需求 - 因此我们仍在寻找解决方案 - 也许是Telerik UI表

ELAD。

相关问题