将Datable与Nodejs socket.io一起使用

时间:2016-04-01 12:28:02

标签: javascript ajax node.js socket.io datatables

我目前正在开始使用数据表(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数据源,所以它不起作用。

1 个答案:

答案 0 :(得分:0)

作为一种解决方法,我等待表首先完全填充,调用Datatables样式,它将计算所有添加的元素。

唯一的问题是它有时会显示未格式化的数据,所以你需要添加一个DOM控件来显示加载的东西。