我有一个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
} );
显然这不起作用, 有人能指出我正确的做法。
谢谢,
答案 0 :(得分:0)
您不需要致电setTimeout()
。在示例中使用它来模拟服务器端响应并添加延迟。
如果使用,Scroller扩展程序将自动从服务器提取新数据。
请参阅下面的更正ajax
选项:
"ajax": {
"url": "process.php",
"type": "POST",
"data": {
"start": "<?php echo $start; ?>",
"end": "<?php echo $start; ?>"
}
},