服务器端数据表处理会在加载记录时使浏览器捕捉

时间:2018-07-09 08:51:17

标签: php jquery ajax codeigniter datatable

AJAX成功内,我有一个服务器端数据表,如下所示:

$('#tb_view_reports').DataTable({
    columnDefs: [
        { className: "text-center", "targets": [ 6,7,8 ] }
      ],
    processing: true,
    serverSide: true,
    bPaginate:   false,
    bFilter : false,
    initComplete: function(settings, json) {
        $('.dataTables_scrollBody thead tr').css({visibility:'collapse'});
    },
    ajax: function(data,callback,settings){
        var out = [];
        var c = 0;

        for (var j = 0; j < datas.length; j++) {
            for ( var i=0; i<datas[j].length ; i++ ) {
                out.push([ 
                            datas[j][i]['BranchName'],
                            datas[j][i]['ItemGroup'],
                            datas[j][i]['ItemCategory'],
                            datas[j][i]['ItemLine'],
                            datas[j][i]['ItemCode'],
                            datas[j][i]['ItemDesc'],
                            datas[j][i]['ItemPrice'],
                            datas[j][i]['ItemBalance'],
                            datas[j][i]['ItemAmount']
                        ]);
            };
            c = c+ datas[j].length;
        };

        //console.log(datas[0]);

        setTimeout(function(){
            callback({
                draw: data.draw,
                data: out,
                recordsTotal: c,
                recordsFiltered: c
            });
        },50);
    },
    scrollY: 400,
    scroller: {
        loadingIndicator: true
    },
    stateSave: true
});

The Image of database result 控制器加载JSON array并将其传递到AJAX。我的结果数据表说的是显示46242个条目中的1到46242个,这意味着该数据表将所有数据加载为一个。取而代之的是,它应该说显示46242个条目中的1到52 ,例如,如果加载的数据来自1-52,依此类推。就像这里的示例:https://datatables.net/extensions/scroller/examples/initialisation/server-side_processing.html。据此,它最多可以加载500万条记录。

现在的问题是,由于整个浏览器都无法正常运行,因此它无法再加载200,000条记录。我的问题是,我错过了数据表的代码吗?

请帮帮我。
非常感谢您。

0 个答案:

没有答案