要求:
我希望将服务器中的大dataset
加载到jQuery DataTables
。
我不是一次性加载整个数据,而是想按块加载表块。当用户点击分页索引时,进行ajax调用获取几百行。
示例:
因此,在一个网格中,每页只有10条记录可见,分页将高达50 index
(10(records per page)*50(pages) = 500(records)
)。点击第50个索引,我们想要获取另一个500 records
和添加相同的datatable
,然后索引将高达100
。
我有1500
条记录的数据集,但同时我只能获取500
条记录。
我正在SO
以及datatable forum
中探索各种问题,但到目前为止仍未找到解决方案。
答案 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
变量调整为每次调用所需的记录数。