2016-07-30 4 views
0

Ich habe eine jquery DataTable ist serverseitige Verarbeitungsmodus. Wie setTimeout-Funktion, wenn Serverseite Rückruf like thisWie neu laden in jquery Datatable, wenn Callback zeichnen?

mein Code wie unten,

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

}); 

Offensichtlich ist dies nicht funktioniert, hinzufügen Kann mir jemand den richtigen Weg, es zu tun hinweisen.

Danke,

Antwort

0

Sie brauchen nicht setTimeout() zu nennen. Es wurde im Beispiel verwendet, um die serverseitige Antwort zu emulieren und eine Verzögerung hinzuzufügen.

Bei Verwendung der Scroller-Erweiterung werden neue Daten automatisch vom Server abgerufen.

See korrigiert ajax Option unter:

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