我正在使用Datatable在我的网站项目中填充大量记录。由于数据量很大,我不想加载所有记录,因此很明显,我需要以分页的方式进行加载。
因此,在我的Datatable中,我希望每个页面只显示10条记录,然后当用户单击分页按钮"2,3,...“或者当单击“下一步”时,我想绑定单击事件以获取单击的页码,并根据该页码显示下一批记录。
我有这个query,我将在SQL Server端使用它来获取相应的数据:
SELECT * FROM TABLENAME ORDER BY INSERTED_TIMESTAMP OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;
我希
我有一个页面,其中我列出了一些基于搜索数据的产品。所显示的产品不是保存在本地数据库中,而是使用API实时获取的(这就是它必须保持的方式)。
当页面加载时,它首先列出来自一个提供者的产品(第一个API调用)。在页面完成加载后,使用Ajax对第二个提供者进行第二次调用,产品列表将出现并附加到页面中。
考虑到每个api调用都需要2+秒才能返回数据,我不能在页面加载上留下超过一个调用。
我的问题是:在这种情况下如何分页?
Idea 1
执行静态分页:分页是在浏览器中完成的。这确实很简单,但是在大的结果集上,它可能会减慢设备的速度,甚至使页面崩溃。
Idea 2
在第一次加载时,缓存所有结果并使用缓存文
当前,Ruby中的ItemCollection#query方法返回整个数据集。我查看了Ruby源代码中是否有分页的可能性,但是最接近分页的选项是:limit,而不是分页。根据亚马逊的DynamoDB API (HTTP而不是Ruby)的文档,查询操作可能会使用响应键LastEvaluatedKey进行分页。
查询操作停止的项的主键,包括前一个结果集。使用此值可在新请求中启动不包括此值的新操作。当整个查询结果集完成(即操作处理“最后一页”)时,LastEvaluatedKey为空。
因此,我可以通过添加:limit选项来执行分页,然后在上一个Item之后对range值执行下一个查询,但是