Datatables загружают записи на странице в режиме реального времени - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть плагин datatables 1.10, и я пытаюсь сократить время загрузки, в настоящее время у меня есть более 1000 записей, которые должны быть показаны в таблице, и я настроил их для разбивки на страницы.

Проблема в том, что когда вы загружаете страницу, то, что вы делаете, загружаете все записи и после загрузки показывает все содержимое и страницу, так как у меня на странице отображается 6 записей.

Что я хочу или хотел быНапример, когда я загружаю страницу, мне нужно только загрузить записи текущей страницы, если мне нужно загрузить следующую страницу, то я бы снова загрузил записи страницы.

Я пытался с помощью "serverSide: true, "но он загружает их все без нумерации страниц.

На самом деле это мой код:

var showcontent = baseurl+"transaction/showcontent";
var table = $('#datatablecontent').DataTable({
"responsive": true,
"processing": true,
    "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "Todos"]],
    "ajax": {
        "url": showcontent,
        "type": "POST"
},        
"autoWidth": false,
'columnDefs': [
  { 'width': 10, 'targets': 1 },
  { 'width': 5, 'targets': 2 },
  { 'width': 5, 'targets': 3 },
  { 'width': 5, 'targets': 4 },
  { 'width': 55, 'targets': 5 },
  { 'width': 30, 'targets': 6 },
  { 'width': 20, 'targets': 7 },
  { 'width': 20, 'targets': 8 , 'visible': false},
  { 'width': 40, 'targets': 9 },
  { 'width': 20, 'targets': 10 , 'visible': false},
  { 'width': 20, 'targets': 11 , 'visible': false},
  { 'width': 20, 'targets': 12 , 'visible': false},
  { 'width': 20, 'targets': 13 },
  { 'width': 20, 'targets': 14 },
  { 'width': 10, 'targets': 15 },
  { 'width': 20, 'targets': 16 , 'visible': false},
  { 'width': 10, 'targets': 17 },
  { 'width': 10, 'targets': 18 },
  { 'width': 10, 'targets': 19 },
  { 'width': 10, 'targets': 20 , 'visible': false},
  { 'width': 10, 'targets': 21 , 'visible': false},
  { 'width': 50, 'targets': 22 },
  { 'targets': 0,'searchable':false,'orderable':false,}
  //{ 'targets': 1,'searchable':false,'orderable':false,}
],
"fixedColumns": true,
"iDisplayLength": 5,
"order": [[ 2, "desc" ]]
});

File php/codeigniter: transaction(controller)
public function showcontent(){
...
//Here before is the code from send data json
$output = array(
              "data" => $data,
  );
echo json_encode($output);
}

1 Ответ

0 голосов
/ 05 ноября 2019

Вам необходимо использовать серверный сценарий, который будет разбивать результаты на страницы в дополнение к включению режима обработки на стороне сервера с помощью serverSide: true.

. С PHP вы можете использовать ssp.class.php, доступный в /examples/server_side/scriptsпапка при загрузке библиотеки DataTables .

В папке server_processing.php также есть пример сценария /examples/server_side/scripts, в котором показано, как его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...