我目前正在开始使用数据表(https://datatables.net)来创建表格。
表中的数据是通过服务器的socket.io获得的。
我的问题是当socket.io添加数据时,表没有“更新”,它表示它只有1个条目,而搜索框只对最后添加的元素起作用。
以下是我的代码示例:
socket.on('jobStepsResponse', function(message) {
document.getElementById('listOfJobs').style.display = 'none';
document.getElementById('contentJob').style.display = 'block';
document.getElementById('jobid').innerHTML = "<button onClick=returnToJobList()>Retour</button> Job "+message.idJob;
for(var i=0;i<Object.keys(message.status).length;i++){
document.getElementById('tabstats').innerHTML += '<tr><td>'+Object.keys(message.status)[i]+'</td>'+'<td>'+ts2time(message.status[Object.keys(message.status)[i]])+'</td>'+'</tr>';
}
$(document).ready(function() {$('#example2').DataTable();} );
setInterval( function () { $('#example2').DataTable().ajax.reload( null, false ); }, 1000 );
});
正如你所看到的,我尝试使用ajax reload,但我认为它适用于ajax数据源,所以它不起作用。
答案 0 :(得分:0)
作为一种解决方法,我等待表首先完全填充,调用Datatables样式,它将计算所有添加的元素。
唯一的问题是它有时会显示未格式化的数据,所以你需要添加一个DOM控件来显示加载的东西。