首页 > 解决方案 > 分页时如何处理大型选择集

问题描述

我正在开发一个文档管理平台。用户可以将文档上传到网络应用程序,编辑他们的元数据,并执行任务(例如通过电子邮件将文档发送给他们的收件人)。

我们的用户需要能够从搜索结果中选择任意数量的文档。他们可以一个一个地选择文档,或者单击“全选”按钮。我们可以谈论要选择的数千或数万个文档。

搜索文档时,我们在 Datatables 表中显示分页结果。这意味着在为任务选择文档时,我们需要在某处存储选择集,因为 Datatable 只知道当前正在显示的行。目前,我们将文档的 GUIDS 存储在隐藏的页面元素中。

这被证明是不够的,因为我们面临着这种方法的问题: - 选择所有文档时,可能存在并发问题。如果在用户进行搜索和计划任务之间上传了更多符合当前搜索条件的文档怎么办?这可能会导致文档的意外处理。- 如果您在客户端选择“全选”时将所有 GUID 发送到客户端(以避免上述并发问题),则列表可能太大而无法作为 JSON 对象发送。- 也可能发生相反的情况:如果客户端的列表太大而无法发送到服务器怎么办?

我的问题是:存储和处理大型用户选择集的更好方法是什么?

标签: javascriptjqueryasp.net-mvcdatatablesserver-side

解决方案


我发现您可以使用 GZip 或 Deflate在 ASP.Net 中压缩响应数据。多亏了这个,我能够发送大型数据集,没问题。


推荐阅读