按间隔重新加载数据表

时间:2017-08-04 17:32:45

标签: javascript jquery json datatable datatables

为了保持数据新鲜,我每隔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>

2 个答案:

答案 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请求