Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数据表每30秒自动刷新一次不工作_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript 数据表每30秒自动刷新一次不工作

Javascript 数据表每30秒自动刷新一次不工作,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在尝试一个应用程序从数据库中获取记录,并使用返回的json填充dataTable 我的应用程序运行良好,但我希望每30秒刷新一次表,并从数据库中重新填充添加/修改的行 Ajax重新加载不起作用。我需要你的建议来知道我哪里出错了 这是我的密码 数据表脚本 var table; function submitData(){ alert('Method Called'); table=$('#table').dataTable({ "pagingType" : '

我正在尝试一个应用程序从数据库中获取记录,并使用返回的json填充dataTable

我的应用程序运行良好,但我希望每30秒刷新一次表,并从数据库中重新填充添加/修改的行

Ajax重新加载不起作用。我需要你的建议来知道我哪里出错了

这是我的密码

数据表脚本

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 );