不清除Ajax调用上的现有记录 - DataTables

时间:2012-12-17 10:05:14

标签: php jquery ajax datatables

我正在使用DataTables插件从mysql表中检索数据并显示它们。为此,我使用他们的服务器端处理代码来检索所有数据。到目前为止它工作正常。现在,我每分钟都在检查数据库是否插入了新记录。如果在数据库中插入了新记录,我正在调用数据表函数。当它清除整个记录并显示具有新插入记录的记录,使其看起来像整个页面加载。我们可以不清除现有数据吗?或者我们可以将新插入的记录附加到现有记录中而不清除记录吗?或者我该如何处理这个呢?

这是我的代码

$('#example').dataTable({
                    "bProcessing": false,
                    "bServerSide": true,
                    "sPaginationType": "full_numbers",
                    "iDisplayLength":10,
                    "bDeferRender": true,
                    "bFilter": false,
                    "bSort": false,
                    "bInfo": true,
                    "sAjaxSource": #PHP_PATH#/json_data"
                   });

1 个答案:

答案 0 :(得分:1)

对于你想要达到的目标,我还建议调查一下SignalR - 它真棒!

你在使用bServerSide处理的是什么?

第一次生成页面并将其发送到客户端时,数据表将使用当时的最新数据进行渲染。之后,在每次后续的ajax调用中,如果您的服务器仅向您发回新数据,您只需在成功/完成回调中调用以下方法。

function AddRow(row) {
    $('#example').dataTable().fnAddData([
        row[0],
        row[1],
        row[2]]);
}

$.ajax({
    //...
    success: function(data) {
        //assuming data = ["COL.1", "COL.2", "COL.3"]
        AddRow(data);
    }
    //...
});​