datatable:以块的形式加载数据

时间:2016-04-14 17:00:26

标签: jquery datatable datatables angular-datatables

要求:

我希望将服务器中的大dataset加载到jQuery DataTables

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

示例:

因此,在一个网格中,每页只有10条记录可见,分页将高达50 index10(records per page)*50(pages) = 500(records))。点击第50个索引,我们想要获取另一个500 records和添加相同的datatable,然后索引将高达100

我有1500条记录的数据集,但同时我只能获取500条记录。

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

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

1 个答案:

答案 0 :(得分:0)

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

然后,您的服务器将在数据库中查询行page * chunk(page * chunk)+chunk-1)。这要求您选择所有行,为每行指定索引,然后检索正确的块。请注意[{1}} [包含,独占]块。

示例:

-1

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

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

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

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

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

您可以将page = 2; chunk start index = page * chunk = 20 chunk end index = page * chunk + chunk - 1 = 29变量调整为每次调用所需的记录数。