datatable : загружать данные порциями

Требование:

Я хочу загрузить большой 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, но до сих пор не нашел решения.

Форум Datatable: Попытка отложенной загрузки на стороне клиента


person Rohit Jindal    schedule 14.04.2016    source источник
comment
Как насчет использования обработки на стороне сервера?   -  person Gyrocode.com    schedule 14.04.2016
comment
Спасибо @Gyrocode.com, это сработает.   -  person Rohit Jindal    schedule 15.04.2016


Ответы (1)


Я дам концептуальный ответ, так как ничего не знаю о вашем сервере. В основном на клиенте у вас есть переменная page, которая инициализируется до 0. На вашем сервере у вас есть переменная chunk, для которой установлено значение 10. Каждый раз, когда вам нужно загрузить данные, вы увеличиваете page и отправляете запрос ajax с page в качестве параметра .

Затем ваш сервер запросит в базе данных строки с page * chunk по (page * chunk)+chunk-1). Это требует, чтобы вы выбрали все строки, присвоили каждой строке индекс, а затем получили нужный фрагмент. Обратите внимание на -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, чтобы указать, сколько записей вы хотите за вызов.

person Eric Guan    schedule 15.04.2016