JQuery Datatable没有间隔重新加载

时间:2017-04-14 17:44:54

标签: jquery datatables

我正在使用jquery Datatables并尝试通过间隔重新加载数据。我不能成功,但这个代码是对的吗?

(document).ready(function() {
    $.ajax({
        url: "./includes/processing.php",
        method: "POST",
        dataType:'json',
        "contentType": "application/json; charset=utf-8",
        success: function(data) {
            $('#DTResTableList_1').dataTable({
                data: data,
                'paging': false,
                'scrollY': 400,
                'select': true,
                columns:[
                    {'data' : 'col0'},
                    {'data' : 'col1'},
                    {'data' : 'col2'},
                    {'data' : 'col3'},
                    {'data' : 'col4'},
                    {'data' : 'col5'}
                ]
            });
        },
        error: function(data) {
            console.log(data);
        }
    });
    setInterval( function () {
      table.ajax.reload();
}, 1000 );
});

尝试单独构建它,但这不会让内容加载自己。

使用此代码

已解决;

$(document).ready(function() {
    $('#DTResTableList_1').DataTable( {
        "ajax": {
            url: './includes/processing.php',
            method: 'POST',
            dataType:'json',
            contentType: 'application/json; charset=utf-8',
            dataSrc: ""},
            paging:     false,
            scrollY:    400,
            select:     true,
        'columns': [
            {'data' : 'col0'},
            {'data' : 'col1'},
            {'data' : 'col2'},
            {'data' : 'col3'},
            {'data' : 'col4'},
            {'data' : 'col5'}
        ]
    } );
    setInterval( function () {
    $('#DTResTableList_1').DataTable().ajax.reload( null, false ); // user paging is not reset on reload
}, 5000 );
} );

1 个答案:

答案 0 :(得分:1)

请改用以下代码。

我建议在成功进行DataTables初始化后立即调用setInterval,否则可能会出现竞争状况。

$(document).ready(function() {
    var table = $('#DTResTableList_1').DataTable({               
        'ajax': {
            'url': "./includes/processing.php",
            'method': "POST",
            'dataType': 'json',
            'contentType': "application/json; charset=utf-8"
        },
        'initComplete': function(settings){
            var api = new $.fn.dataTable.Api( settings );

            setInterval( function () {
                api.ajax.reload();
            }, 1000);
        },
        'paging': false,
        'scrollY': 400,
        'select': true,
        'columns': [
            {'data' : 'col0'},
            {'data' : 'col1'},
            {'data' : 'col2'},
            {'data' : 'col3'},
            {'data' : 'col4'},
            {'data' : 'col5'}
        ]
    });
});