未触发数据表deferRender

Datatables deferRender not being triggered

本文关键字:deferRender 数据表      更新时间:2023-09-26

我正在努力提高这个数据表的加载时性能。到目前为止,它只加载了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);
    }
};

也许您编写了一个服务器脚本,它只返回一段数据的json。它可以在用户交互后呈现下一个数据包,例如单击Datatable上的next委派适当的事件。

为了实现这一点,您可以向PHP脚本发送一个参数,例如bundle的数量。