我目前正在 BIM 360 Docs 集成的项目文件/计划/工作表视图中实施分页、排序和搜索功能。
由于我找不到关于这些功能的任何最佳实践,我想我会伸出援手,这样我就不会一直陷入重新发明轮子的困境。
背景:
大多数实现使用https://github.com/Autodesk-Forge/forge-api-dotnet-client/ SDK。
根据我所见,Autodesk API 中的分页非常基础,不能很好地与过滤视图配合使用。如果我错了,请纠正我,但看起来无法获取视图中的项目数和/或计算结果集中的总页数。
如果使用过滤来限制 API 返回的项目类型(例如文档、工作表、项目文件),API 首先应用分页,然后过滤。这会导致返回的结果集中出现漏洞,例如,一个请求页面 1 的大小为 5 个项目,然后返回 3 个项目,然后请求类似大小的页面 2 并且没有返回任何项目,然后页面 3 将产生 2 个项目。
上述问题迫使我们使用动态延迟加载分页,类似于目前在 BIM360 Docs UI 中的做法。
问题:
有没有更好的分页方式?或者我们是否必须在滚动时延迟加载结果,永远不知道下一页会返回多少记录?