Javascript 数据表每30秒自动刷新一次不工作
我正在尝试一个应用程序从数据库中获取记录,并使用返回的json填充dataTable 我的应用程序运行良好,但我希望每30秒刷新一次表,并从数据库中重新填充添加/修改的行 Ajax重新加载不起作用。我需要你的建议来知道我哪里出错了 这是我的密码 数据表脚本Javascript 数据表每30秒自动刷新一次不工作,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在尝试一个应用程序从数据库中获取记录,并使用返回的json填充dataTable 我的应用程序运行良好,但我希望每30秒刷新一次表,并从数据库中重新填充添加/修改的行 Ajax重新加载不起作用。我需要你的建议来知道我哪里出错了 这是我的密码 数据表脚本 var table; function submitData(){ alert('Method Called'); table=$('#table').dataTable({ "pagingType" : '
var table;
function submitData(){
alert('Method Called');
table=$('#table').dataTable({
"pagingType" : 'full_numbers',
"scrollY" : "200px",
"dom" : 'TRlfrCtip',
"colVis" : {
"activate" : "mouseover",
"restore" : "Restore"
},
"tableTools" : {
"aButtons" : ["copy","csv","xls","pdf","print"],
"sSwfPath": "http://cdn.datatables.net/tabletools/2.2.2/swf/copy_csv_xls_pdf.swf"
},
"ajax" : {
"url" : '../DataTableExample/FetchRows',
"dataType" : "json",
"type" : "POST",
},
"aoColumns" : [ {
"mData" : "id",
"sTitle" : "S. No"
}, {
"mData" : "name",
"sTitle":"Name"
}, {
"mData" : "age",
"sTitle":"Age"
}, {
"mData" : "designation",
"sTitle":"Designation"
}, {
"mData" : "qualification",
"sTitle": "Qualification"
}, ],
"deferRender": true,
"columnDefs":[
{
"targets" : [0],
"visible" : false,
"searchable" : true
}
]
});
$('#table tbody').on('click','tr',function(){
$(this).toggleClass('selected');
});
setInterval( function () {
table.ajax.reload();
}, 30000 );
}
function hideThings(){
$('#table_length').css("display","none");
}
HTML
数据表示例
以下代码将每隔30秒重新加载一次数据表
改变
setInterval( function () {
table.ajax.reload();
}, 30000 );
到
好的,两件事
一个变化
setInterval( function () {
table.ajax.reload();
}, 30000 );
到
及
我找到了解决办法
我使用事件委托来跟踪执行排序的列索引,并使用该变量动态地将其应用于“order”选项。正如你们所建议的,我将ajax.reload改为调用setInterval(submitData,30000),在该函数中,如果发现了表,我就销毁了它。现在一切正常
谢谢大家的支持:-)我就是这样做的,每2秒取一次
setTimeout(function(){ $('#table').DataTable().ajax.reload(); },2000);
无需销毁,只需重新加载表。无需销毁即可重新加载数据。您只能重新加载数据
function reloadDatatable () {
$('#example').DataTable().ajax.reload();
};
setInterval( reloadDatatable , 1000 );
submitData或submitData()?不,这不起作用。它给出异常“DataTables警告:table id=table-无法重新初始化DataTable。有关此错误的详细信息,请参阅“因为它将重新初始化该表”again@RishiPrakash在调用setInterval时,只需提交数据就足够了。。但这不是解决我问题的办法。。正如我上面解释的,它试图重新初始化表。您是否在浏览器控制台中看到任何错误?是的,它发出警报,更新没有反映在表中。。但是在函数内部,如果它试图销毁以前加载的表,那么它工作正常,但问题是在下次刷新时,表的状态也会发生变化。如果在某些列上对表格进行排序,则会将其重置为正常。。saveState不起作用如何重置分页或提供一个假值。不工作。。我也试过了。。实际上,ajax.reload不起作用。。这是我的代码中的任何问题吗?这就是为什么我告诉您要查看控制台中发生的任何错误。Firefox拥有强大的内置开发工具。它会帮你的。不,它不起作用。。它会发出异常警报,有时会显示旧值,有时会附加新值和旧值。。
setInterval( submitData , 30000 );
table=$('#table').dataTable({
"pagingType" : 'full_numbers',
destroy: true, //ADD DESTROY TRUE
.
.
.
..
setTimeout(function(){ $('#table').DataTable().ajax.reload(); },2000);
function reloadDatatable () {
$('#example').DataTable().ajax.reload();
};
setInterval( reloadDatatable , 1000 );