Очень медленная загрузка записей с помощью плагина datatables, как я могу сделать это быстрее? - PullRequest
0 голосов
/ 24 февраля 2020

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

В настоящее время время зарядки может примерно одна минута.

Я включил плагин "скроллер", но он требует того же, кто-то может мне помочь, я оставляю код здесь, используйте php и codeigniter 3.

JS

var table = $('#datatabletransaction').DataTable({
"deferRender":    true,
"scrollY":        500,
"scroller":       true,
"responsive": true,
"processing": true,
"fixedHeader": true,
"serverSide":true,
    "lengthMenu": [[5, 10, 25, 50, -1], [5, 10, 25, 50, "Todos"]],
    "ajax": {
        "url": mostrarcontenido,
        "type": "POST"
},       
language": {
      "url": "http://cdn.datatables.net/plug-ins/1.10.16/i18n/Spanish.json"
},
"fixedColumns": true,
"iDisplayLength": 5,
"order": [[ 2, "desc" ]]
});

CONTROLLER

public function mostrartablatransaccionestelefonos(){
  $this->load->model('tablas_model');
  $data = array();
  $list = $this->tablas_model->mostrar_registros_ventacompra($estado);
  foreach ($list as $person) {
      $row = array();
      $row[] = $person->num_factura;
      $row[] = $person->num_albaran;
      $row[] = $person->transacion;
      $row[] = $person->imei;
      $row[] = $person->nombre;
      $row[] = $person->fecha_registro;
      $row[] = $person->modelo;
      $row[] = $person->marca;
      $row[] = $person->color;
      $row[] = $person->memoria;
      $row[] = $person->precio_iva;
      $row[] = $person->precio_sin_iva;

      $output = array(
              "data" => $data,
      );
      echo json_encode($output);

}

Запрос очень широкий, но я поставлю время ответа, которое возвращает запрос (сделано с Heid Sql).

Я выполнил запрос в Хайди Sql, и это результат / * Затронутых строк: 0 Найдено строк: 1,816 Предупреждений: 0 Продолжительность 1 консультации: 0,047 сек c. * /

Запрос не занимает полсекунды. Но как я могу заставить его загружать данные быстрее?

Я попробовал эти опции, но безрезультатно:

https://datatables.net/extensions/scroller/examples/initialisation/server-side_processing.html

https://datatables.net/extensions/scroller/examples/initialisation/large_js_source.html

1 Ответ

0 голосов
/ 24 февраля 2020

Я думаю, что ваш контроллер глючит.

  1. По ширине этого кода вы добавите 12 строк в массив $ row, это то, что вы хотите?
  2. Выходной массив содержит пустой элемент $ data, вы его не заполняете в любом месте.

Чтобы начать отладку медленной производительности, вы должны попытаться вызвать контроллер и посмотреть, сколько времени вы теряете

  • , если вы вызываете контроллер с чем-то вроде Почтальона , в какое время он отвечает?
  • , если проблема в контроллере, поставьте микротайм (true) вызовы вашего кода и следите за медленной частью.

удачи

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