为了保持数据新鲜,我每隔1分钟刷新一次页面。我需要偏离它,最后让数据表重新加载而不是浏览器刷新。
从我的$ .post开始:
$.post('api/displayQnams.php', function(data)
{
var table = $('example1').DataTable();
table.clear();
table.search('').draw();
var obj = JSON.parse(data);
obj.forEach(function(item)
{
table.row.add([item.bkgname, item.quote, item.date, item.urgent])
});
table.draw();
setInterval(function()
{
table.draw();
console.log('test');
}, 10000); // 10 second interval
});
上面的代码工作正常。 DataTable打印到页面没有问题。
现在,在$ .post之上,我设置了DataTable。我不确定这是否是设置DataTable的最佳方式,但它确实提供了我需要的结果。
$(function()
{
$('#example1').DataTable({
"dataType": "json",
"iDisplayLength": 25,
"order": [[ 6, "desc" ]],
"scrollY": 550,
"scrollX": true,
"bDestroy": true,
"stateSave": true
});
});
还有一些DataTable样式,但我想保持简短。
回到我的第一段代码,我将间隔设置为10秒。我可以看到控制台每10秒打印一次“测试”,但表格没有重新加载。
为了让DataTable每10秒重新加载一次,我错过了什么?
这是表格的样子:
<table id="example1" class="table table-bordered table-hover table-condensed">
<thead>
<tr>
<th>column1</th>
<th>column2</th>
<th>column3</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
而不是执行此操作...
scene.add(sphere);
sphere.position.set(0.702825, 2.71217, 2.71612);
使用ajax并定义列:
row.add
然后在间隔使用:
$(document).ready(function() {
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": {
"url": "scripts/post.php",
"type": "POST"
},
"columns": [
{ "data": "first_name" },
{ "data": "last_name" },
{ "data": "position" },
{ "data": "office" },
{ "data": "start_date" },
{ "data": "salary" }
]
} );
} );
答案 1 :(得分:0)
您没有在setInterval回调函数中调用$ .post(&#39; ...&#39;)。
查看你的代码:在setInterval回调中,你正在调用
table.draw()
console.log('test')
因此,您只需获取一次数据,并且仅重新绘制相同数据...
编辑:如果你在DevTools中检查你的网络请求标签,你应该只注意一个ajax请求