分页时如何处理大选择集

How to handle large selection sets when paging

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

我们的用户需要能够 select 从搜索结果中获取任意数量的文档。他们可以一张一张地挑选文档,或者单击 "Select all" 按钮。我们可能会讨论要 selected 的数千或数万个文档。

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

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

我的问题是:什么是储存和处理大用户 select 离子组的更好方法?

我发现您可以压缩 ASP.Net、making use of GZip or Deflate 中的响应数据。 多亏了这个,我能够发送大数据集,没问题。