如何在内容发生变化时加载Datatables ajax数据?

时间:2017-06-27 11:06:33

标签: javascript jquery ajax datatable

我有一个带有setInterval函数的数据表,每1秒加载一次内容。我的问题是,Chrome浏览器网络缓存会随着每次加载而增加。有时只有几kb,但如果有更多的加载,即200行,而不是每次加载,即2 MB。这将增加此选项卡和chrome的内存使用量。

我有php基于mysql数据库调用生成一个json。此数据可以更改,即更新,删除或添加。我的时间戳是专栏date_update

是否有办法在初始加载时加载所有数据,而且只在内容发生变化时加载(date_update大于上次生成的时间戳)?类似心跳或信标功能的东西,检查是否有比XY时间戳更旧的内容,如果是,请加载它?

我正在使用这个常规功能:

var MyTable = $('#MyTable').DataTable({
        "order": [[ 3, "desc" ]],
        responsive: true,
        "ajax": {
            url: './includes/myDataFile.php',
            method: 'POST',
            dataType: 'json',
            contentType: 'application/json',
            dataSrc: ""
        },
        paging: false,
        scrollY: 250,
        sort:   true,
        filter: false,
        select: { style: 'single'},
        width: '100%',
        'columns': [
            {
                'data': 'id'
            },
            {
                'data': 'name'
            },
            {
                'data': 'start'
            },
            {
                'data': 'end'
            },
            {
                'data': 'count'
            },
            {
                'data': 'status'
            },
{
                'data': 'date_update',
                 visible: false
            }
        ],

    });


    setInterval(function() {
        $('#MyTable').DataTable().ajax.reload(null, false); // user paging is not reset on reload
    }, 1000);

});

0 个答案:

没有答案