ag网格,具有虚拟滚动功能,无延迟加载



我有一个要求,我们需要显示大约24k条记录,其中一次包含84列,因为用户希望对整个数据集进行过滤。

那么,我们可以在没有延迟加载的情况下使用ag网格来实现虚拟滚动机制吗??如果是的话,请你在这儿。任何例子都非常欢迎参考。

在使用类似数量的行和列尝试过这种方法后,我发现几乎不可能获得合理的性能,尤其是如果您使用的是"框架"渲染器。如果你启用分组,你会过得很糟糕。

我的团队为实现整个大型数据集的过滤和排序所做的工作包括:

  • 我们使用了客户端行模型-网格的最简单模式

  • 我们一次只加载一页数据。这涉及到对合理的数据样本和实际功能的反复试验,您正在使用这些功能来达到最大页面大小,这仍然允许网格在滚动/渲染方面表现良好。

  • 我们实现了自己的分页。这包括显示页面控件,以及从服务器获取下一个/上一个页面。这显然需要服务器端支持。从ag网格的角度来看,它只管理一页数据。通过往返服务器,每个页面都会被下一个页面完全替换。

  • 我们在服务器端实现了排序和过滤。当用户排序或筛选时,我们捕获事件,并将排序/筛选参数发送到服务器,然后返回一个新页面。当这种情况发生时,我们将返回到第0页(或用户用语中的第1页(。这与我们在页面其他地方(在我们的例子中,网格上方的工具栏(对非网格过滤器的支持非常吻合。

  • 我们只在有一页数据时才启用分组,并鼓励用户过滤他们的数据,将其缩小到一页数据,以便对其进行分组。根据数据的不同,页面大小可能高达1000行。同样,您必须根据具体情况确定页面大小。

因此,简而言之,当我们需要支持对大型数据集进行过滤/排序时,我们会在服务器端完成所有性能密集型部分。

我相信其他人会争辩说ag grid有很多高级功能,我建议你不要使用。对于中小型数据集来说,它们是正确的,但当涉及到处理大型数据集时,我发现ag网格无法以合理的性能处理它。

最新更新