数据表deferRender未被触发

时间:2014-10-14 09:28:33

标签: javascript php jquery ajax datatables

我正在努力改善此数据表的加载时间性能。到目前为止,它只加载了700多条记录,而且它已经非常慢了。我在这个例子中正确使用deferRender吗?它似乎没有改变或改进任何东西。我认为它可能是阻碍它的loadJSON函数。

$(document).ready( function () {
    $('#log_table').dataTable( {
        "deferRender": true,
        "dom": '<"top"f>rt<"bottom"lp><"clear">',
        "fnCreatedRow": function( nRow, aData, iDataIndex ) {

        },
        "aoColumnDefs": [
            {
                "targets": [ 0 ],
                "visible": false,
                "searchable": false
            }
        ]
    } );
} );

function loadJSON(data){
    console.log(data);
    var t = $('#log_table').DataTable();
    t.clear();
    var json = $.parseJSON(data);
    $.each(json, function(key,value) {
        t.row.add( [
            value.uuid,
            value.date,
            value.username,
            value.loggedTable,
            value.action_performed,
            value.queryString
        ] ).draw();
    });
}

$("#audit_trail_menu").click(function(){
    $.ajax({
        url: './inc/AuditTrailScripts.php?argument=loadAllRecords',
        success: function(data) {
            loadJSON(data);

        }
    })
});

PHP

if(!empty($_GET["argument"])){
    /*
     * loadAllRecords
     * Fetch all records to load into the datatable
     * table to fetch from - media
     */
    if ($_GET['argument']=='loadAllRecords'){
        $json= fetchAll();
        echo json_encode($json);
    }
};

1 个答案:

答案 0 :(得分:0)

也许你编写了一个服务器脚本,它只返回一个数据片段的json。它可以在用户交互后呈现下一个数据包,例如。点击Datatable下一个正确的事件。

要实现此目的,您可以向PHP脚本发送参数,例如bundle的数量。