自动刷新DataTables表并重新加载整个页面
是否有人能够指导如何在每1分钟间隔刷新数据表数据而无需重新加载整个页面。
这是我的代码:
$(document).ready( function () { var refreshTable = $('#id_css').DataTable({ "sAjaxSource": 'ajax/alert_data.txt', "bServerSide": true, "iDisplayLength": 100, "bFilter": false, "aaSorting" : [[2, "desc"]], "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) { if ( aData[2] == "5" ) { $('td', nRow).css('background-color', 'Red'); } else if ( aData[2] == "4" ) { $('td', nRow).css('background-color', 'Orange'); } } }); setInterval (function test() { refreshTable.fnDraw(); }, 1000); });
我尝试过使用这个插件fnReloadAjax.js,但一直得到TypeError:refreshTable.fnReloadAjax不是一个函数 。 这是我使用它的方式:
setInterval (function test() { refreshTable.fnReloadAjax(); }, 1000);
我还添加了它的cdn
任何帮助或指南将不胜感激。
你可以做到
var refreshTable = $('#id_css').DataTable({ ...
然后在document.ready函数内(必须在范围内,否则fnDraw将不起作用)你使用:
setInterval (function test() { refreshTable.fnDraw(); }, 1000);
存在范围问题,代码应如下所示:
$(document).ready( function () { var refreshTable = $('#id_css').DataTable({ "sAjaxSource": 'ajax/alert_data.txt', "bServerSide": true, "iDisplayLength": 100, "bFilter": false, "aaSorting" : [[2, "desc"]], "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) { if ( aData[2] == "5" ) { $('td', nRow).css('background-color', 'Red'); } else if ( aData[2] == "4" ) { $('td', nRow).css('background-color', 'Orange'); } } }); setInterval (function test() { refreshTable.fnDraw(); }, 1000); });
奇怪的是,将DataTable更改为dataTable是导致此失败的根本原因。 这是小D而不是资本D,真烦人……
$(document).ready( function () { var refreshTable = $('#id_css').dataTable({ "sAjaxSource": 'ajax/alert_data.txt',