2016-07-30 2 views
0

У меня есть jquery DataTable - это режим обработки на стороне сервера. Как добавить функцию SetTimeout, когда на стороне сервера обратного вызова like thisКак перезагрузить jquery datatable при обратном вызове?

мой код, как показано ниже,

$(document).ready(function() { 
    $.fn.dataTable.ext.errMode = 'none'; 
    var table = $('#example').DataTable({ 
    "processing": true, 
    "serverSide": true, 
    "jQueryUI": true, 
    "ordering": true, 
    "order": [[1, 'desc']],//default 
     "lengthMenu": [ 
     [50, 100, 1000], 
     [50, 100, 1000] 
     ], 

    "ajax": function (data, callback, settings) { 
     url: "process.php", 
     type: "POST", 
     data: { 
     start: "<?php echo $start; ?>", 
     end: "<?php echo $start; ?>" 
      }, 

     setTimeout(function() { 
      callback({ 
       draw: data.draw, 
       data: aaData, 
       recordsTotal: data.recordsTotal, 
       recordsFiltered: data.recordsFiltered 
      }); 
     }, 50); 
    }, 

    "columns": [ 
     { 
      "className":'details-control', 
      "orderable":false, 
      "data":null, 
      "defaultContent": '' 
     }, 
     { "data": "time"}, 
    { "data": "message","orderable": false} 

    ], 
    "dom": 'frtiS', 
    "scrollY": 600, 
    "scroller": { 

     "loadingIndicator": true 
    }, 
    "deferRender": true 

}); 

Очевидно, что это не работает, Может кто-то момент мне правильный способ сделать это.

Спасибо,

ответ

0

Вам не нужно звонить setTimeout(). Он использовался в этом примере для эмуляции ответа на стороне сервера и добавления задержки.

Если используется, расширение скроллера автоматически выведет новые данные с сервера.

См исправлен ajax вариант ниже:

"ajax": { 
    "url": "process.php", 
    "type": "POST", 
    "data": { 
     "start": "<?php echo $start; ?>", 
     "end": "<?php echo $start; ?>" 
    } 
}, 
Смежные вопросы