减少由ui-grid或替代网格解决方案创建的手表

时间:2017-01-02 21:37:16

标签: javascript angularjs ui-grid

道歉,如果这是一个关于ui-grid的重复问题,但我可以明确我的特定用例的选项。其他类似的问题并没有最终回答我的问题。

我们正试图在一个相当不寻常的Web应用程序中使用ui-grid,其中页面上的表格数量实际上是无限的。他们添加了用户所做的更多活动。不理想,但这就是所需要的。

当使用ui-grid时,即使是一个相当小的简单表,它也会为每个表添加大约1000个手表。随着每个表的添加,摘要周期也会显着增加。当表格数量增加时,这会导致性能不佳,如您所料。

我的问题是,是否有任何可以用ui-grid来减少这些手表的数量?即无需深入研究源代码进行更改。我们使用一次性绑定表示法将数据传递给ui-grid指令,但这没有区别。通过查看其他类似的问题,在我看来,没有其他任何事情可以做,这可能意味着ui-grid不适合我们。

或者,AngularJs中是否有一种方法可以阻止指令中的双向绑定?我不知道这样的方法,但也许有人知道一个让这种情况发生的伎俩?!

最后,任何人都可以建议一个更适合我们用例的替代网格吗?由于它提供的功能,我们正在试用ui-grid,例如列选择,单元格格式化,排序,过滤等。是否有更好的表现AngularJS或其他JS网格将涵盖此功能?最好免费使用?我们考虑过检查的其他人是Kendo UI,jqxGrid,ag-grid(尽管这可能需要付费)。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我的公司遇到了类似的问题,但没有专门针对ui-grid。您可能已经考虑过这个问题,但我们的修复方法是水平和垂直分页。我对你的用例了解不多,但是我们意识到用大网格进行水平和垂直滚动会遇到与你遇到的问题相同的问题,但是对于用户而言,使用滚动条的功能并不是真的比使用页面控件在网格块之间移动。一次只能在一个屏幕上放置500个单元格,并且很容易丢失您尝试使用滚动条的位置。

通过这样做,我们可以使用1路绑定(可能使用bind-once但我必须深入研究代码才能确定)。即使使用双向绑定,如果它适用于您的用例,同样的技术也适用于您。

答案 1 :(得分:1)

如果你我们ag-Grid,就没有手表了。 ag-Grid不使用Angular,因此内部没有手表。

ag-Grid有两个版本,free和enterprise。如果您不需要企业功能,请使用免费版本。