如何在回调绘制时在jquery数据表中重新加载?

时间:2016-07-30 13:49:20

标签: jquery datatables settimeout

我有一个jquery DataTable是服务器端处理模式。 如何在服务器端回调like this

时添加setTimeout函数

我的代码如下,

$(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

} );

显然这不起作用, 有人能指出我正确的做法。

谢谢,

1 个答案:

答案 0 :(得分:0)

您不需要致电setTimeout()。在示例中使用它来模拟服务器端响应并添加延迟。

如果使用,Scroller扩展程序将自动从服务器提取新数据。

请参阅下面的更正ajax选项:

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