我正在使用jquery Datatables并尝试通过间隔重新加载数据。我不能成功,但这个代码是对的吗?
(document).ready(function() {
$.ajax({
url: "./includes/processing.php",
method: "POST",
dataType:'json',
"contentType": "application/json; charset=utf-8",
success: function(data) {
$('#DTResTableList_1').dataTable({
data: data,
'paging': false,
'scrollY': 400,
'select': true,
columns:[
{'data' : 'col0'},
{'data' : 'col1'},
{'data' : 'col2'},
{'data' : 'col3'},
{'data' : 'col4'},
{'data' : 'col5'}
]
});
},
error: function(data) {
console.log(data);
}
});
setInterval( function () {
table.ajax.reload();
}, 1000 );
});
尝试单独构建它,但这不会让内容加载自己。
使用此代码已解决;
$(document).ready(function() {
$('#DTResTableList_1').DataTable( {
"ajax": {
url: './includes/processing.php',
method: 'POST',
dataType:'json',
contentType: 'application/json; charset=utf-8',
dataSrc: ""},
paging: false,
scrollY: 400,
select: true,
'columns': [
{'data' : 'col0'},
{'data' : 'col1'},
{'data' : 'col2'},
{'data' : 'col3'},
{'data' : 'col4'},
{'data' : 'col5'}
]
} );
setInterval( function () {
$('#DTResTableList_1').DataTable().ajax.reload( null, false ); // user paging is not reset on reload
}, 5000 );
} );
答案 0 :(得分:1)
请改用以下代码。
我建议在成功进行DataTables初始化后立即调用setInterval
,否则可能会出现竞争状况。
$(document).ready(function() {
var table = $('#DTResTableList_1').DataTable({
'ajax': {
'url': "./includes/processing.php",
'method': "POST",
'dataType': 'json',
'contentType': "application/json; charset=utf-8"
},
'initComplete': function(settings){
var api = new $.fn.dataTable.Api( settings );
setInterval( function () {
api.ajax.reload();
}, 1000);
},
'paging': false,
'scrollY': 400,
'select': true,
'columns': [
{'data' : 'col0'},
{'data' : 'col1'},
{'data' : 'col2'},
{'data' : 'col3'},
{'data' : 'col4'},
{'data' : 'col5'}
]
});
});