【问题标题】:datatable : load data in chunksdatatable : 分块加载数据
【发布时间】:2016-04-14 17:00:26
【问题描述】:

要求:

我希望将大型 dataset 从服务器加载到 jQuery DataTables

我不想一次加载整个数据,而是想逐块加载表。当用户点击分页索引时,进行 ajax 调用获取几百行。

示例:

因此,在一个网格中,每页只有 10 条记录可见,并且分页最多为 50 index(10(records per page)*50(pages) = 500(records))。单击第 50 个索引时,我们希望获取另一个 500 records 并添加相同的 @987654328 @ 然后索引将达到100

我有一个 1500 记录的数据集,但有一次我只能获取 500 记录。

我正在探索SOdatatable forum 中的各种问题,但到目前为止仍未找到解决方案。

数据表论坛: Trying to do client side lazy loading

【问题讨论】:

标签: jquery datatable datatables angular-datatables


【解决方案1】:

我将给出一个概念性的答案,因为我对您的服务器一无所知。基本上在客户端你有一个page变量初始化为0。在你的服务器上你有一个chunk变量设置为10。每次你需要加载数据时,你增加page并发送一个ajax请求以page 作为参数。

然后,您的服务器将查询数据库中的行 page * chunk(page * chunk)+chunk-1)。这要求您选择所有行,给每一行一个索引,然后检索正确的块。请注意 [inclusive,exclusive] 块的 -1

例子:

page = 0; chunk start index = page * chunk = 0 chunk end index = page * chunk + chunk - 1 = 9

从数据库中检索第 0-9 行。

page = 1; chunk start index = page * chunk = 10 chunk end index = page * chunk + chunk - 1 = 19

从数据库中检索第 10-19 行。

page = 2; chunk start index = page * chunk = 20 chunk end index = page * chunk + chunk - 1 = 29

从数据库中检索第 20-29 行。

您可以将chunk 变量调整为每次调用所需的记录数。

【讨论】:

    猜你喜欢
    • 2014-12-30
    • 1970-01-01
    • 2022-12-07
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    相关资源
    最近更新 更多