我有一个要求,我们需要一次显示大约24k条记录,一次要有84个列,因为用户希望过滤整个数据集。
那么我们可以使用带有ag-grid的虚拟滚动机制而无需延迟加载吗?如果可以,请在这里。任何示例都非常欢迎参考。
答案 0 :(得分:0)
尝试过使用类似的行和列数进行这种事情,我发现要获得合理的性能几乎是不可能的,尤其是当您使用“框架”渲染器之类的东西时。而且,如果启用分组功能,您将会遇到麻烦。
我的团队为在整个大型数据集上进行过滤和排序所做的工作包括:
我们使用了客户端行模型-网格最简单的模式
我们一次只加载一个“页面”数据。这涉及到反复试验,要获取合理的数据样本和实际功能,以达到最大页面尺寸,该最大页面尺寸仍允许网格在滚动/渲染方面表现良好。
我们实现了自己的分页。这包括显示分页控件,以及从服务器获取下一页/上一页。显然,这需要服务器端支持。从农业网格的角度来看,它只能管理一页数据。通过与服务器的往返,每个页面将完全替换为下一页。
我们在服务器端实现了排序和过滤。当用户进行排序或过滤时,我们会捕获事件,并将排序/过滤参数发送到服务器,然后返回新页面。发生这种情况时,我们将还原到第0页(或按用户的说法是第1页)。 这与我们在页面其他地方提供的非网格过滤器(在本例中为网格上方的工具栏)的支持非常吻合。
我们仅在存在单页数据时才启用分组,并鼓励我们的用户过滤其数据以获取下一页数据,以便他们可以对其进行分组。根据数据,页面大小可能高达1,000行。同样,您必须根据具体情况确定页面大小。
因此,简而言之,当我们需要支持对大型数据集进行过滤/排序时,我们将在服务器端执行所有性能密集型位。
我确信其他人会争辩说,ag-grid具有很多高级功能,我建议您不要使用。对于中小型数据集,它们是正确的,但是在处理大型数据集时,我发现ag-grid不能以合理的性能处理它。