账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    dataTable遇到大数据加载很慢,如何优化
    33
    0

    数据量较大,dataTable绘制太慢
    同时又需要获取这些数据做计算
    有什么方法可以优化吗

    function select_data() {
        var gweui = $(".searchable-select-holder").text();
        var start_time = new Date($("#start_time").val()).getTime();
        var end_time = new Date($("#end_time").val()).getTime();
        var now_time = new Date().getTime();
        var pre_time = now_time - 24*60*60*1000;
        var sql = "";
        sql = " select * from lora.als_gw_statistics where gweui = '" + gweui + "' and record_time between '" + pre_time + " ' and '" + now_time + "' order by record_time desc ";
        if(start_time) {
            sql =  " select * from lora.als_gw_statistics where gweui = '" + gweui + "' and record_time between '" + start_time + "' and '" + end_time + "' order by record_time desc ";
        }
        var select_data_req = {
            "action": "query",
            "object": "lora.als_gw_statistics",
            "parameters": sql
        };
        var str = JSON.stringify(select_data_req);
        $.ajax({
            url: NodejsUrls + "data/query",
            type: "post",
            data: {
                req: str
            },
            success: function(data, textStatus) {
                $(".cover").show();
                var data_arr = data.data;
                if (tabTable1 != null) {
                    tabTable1.fnDestroy();
                    tabTable1.fnDraw();
                }
                tabTable1 = $("#tab1").dataTable({
                    "data": data.data,
                    "bDestroy": true,
                    "bPaginage": "true",
                    "iDisplayLength": 10,
                    "bRetrieve": true,
                    "bAutoWidth": false,
                    "oSearch": {
                        "sSearch": "",
                        "bRegex": false,
                        "bSmart": false
                    },
                    paging: true,
                    "sPaginationType": "full_numbers",
                    "dom": 'f<"toolbar1"><"divScroll1" t><"redirectPage1"><"tabFootbar1" ip><"clear">', //下拉框,创建的div ,table,信息,分页条
                    "aaSorting": [
                        [0, "desc"]
                    ],
                    'aoColumnDefs': [{
                        'data': 'record_time',
                        'sTitle': '时间',
                        "aTargets": [0],
                        "sClass": "text-center",
                        "render": function(data, type, full) {
                            return new Date(data*1000).format("yyyy-MM-dd hh:mm:ss");
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_rxnb',
                        'sTitle': '上行帧数量',
                        "aTargets": [1],
                        "sClass": "text-center",
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_sumload',
                        'sTitle': '上行帧总长',
                        "aTargets": [2],
                        "sClass": "text-center",
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_rssi',
                        'sTitle': '上行RSSI',
                        "aTargets": [3],
                        "sClass": "text-center",
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_snr',
                        'sTitle': '上行SNR',
                        "aTargets": [4],
                        "sClass": "text-center",
                        'sDefaultContent': ''
                    }, {
                        'data': 'down_txnb',
                        'sTitle': '下行帧数量',
                        "aTargets": [5],
                        "sClass": "text-center",
                        'sDefaultContent': ''
                    }, {
                        'data': 'down_sumload',
                        'sTitle': '下行帧总长',
                        "aTargets": [6],
                        "sClass": "text-center",
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_sfnb',
                        'sTitle': 'up_sfnb',
                        "aTargets": [7],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.up_sfnb); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_snrnb',
                        'sTitle': 'up_snrnb',
                        "aTargets": [8],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.up_snrnb); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_rssinb',
                        'sTitle': 'up_rssinb',
                        "aTargets": [9],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.up_rssinb); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_chnonb',
                        'sTitle': 'up_chnonb',
                        "aTargets": [10],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.up_chnonb); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_loadnb',
                        'sTitle': 'up_loadnb',
                        "aTargets": [11],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.up_loadnb); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'up_toa',
                        'sTitle': 'up_toa',
                        "aTargets": [12],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.up_toa); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'down_sfnb',
                        'sTitle': 'down_sfnb',
                        "aTargets": [13],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.down_sfnb); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'down_chnonb',
                        'sTitle': 'down_chnonb',
                        "aTargets": [14],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.down_chnonb); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'down_loadnb',
                        'sTitle': 'down_loadnb',
                        "aTargets": [15],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.down_loadnb); 
                        },
                        'sDefaultContent': ''
                    }, {
                        'data': 'down_toa',
                        'sTitle': 'down_toa',
                        "aTargets": [16],
                        "sClass": "hidden",
                        "render": function(data, type, full) {
                            return JSON.stringify(full.down_toa); 
                        },
                        'sDefaultContent': ''
                    }],
                    "oLanguage": { //多语言配置
                        "sLengthMenu": "每页显示 _MENU_ 条记录",
                        "sZeroRecords": "对不起,查询不到任何相关数据",
                        "sEmptyTable": "查询不到任何相关数据",
                        "sInfo": "当前显示 _START_ 到 _END_ 条,共 _TOTAL_ 条记录",
                        "sInfoEmtpy": "找不到相关数据",
                        "sInfoFiltered": "(数据表中共为 _MAX_ 条记录)",
                        "sProcessing": "正在加载中...",
                        "sSearch": "过滤",
                        "sUrl": "", //多语言配置文件,可将oLanguage的设置放在一个txt文件中,例:Javascript/datatable/dtCH.txt
                        "oPaginate": {
                            "sFirst": "首页",
                            "sPrevious": "<",
                            "sNext": ">",
                            "sLast": "尾页 "
                        }
                    }
                });
                $("div.toolbar1").html('<div style="float: right;" class="btn btn-info" id="show_chart" onclick="draw_charts()"><span class="glyphicon glyphicon-pencil" ></span>绘制图表</div><div class="btn btn-info" id="select_time" onclick="show_time_modal();" style="float: right;margin-right: 30px;">选择时间</div>');
                $("#current_gweui").val(gweui);
                $(".cover").hide();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                $(".cover").hide()
                jAlert('数据加载出错...', 'SIME 提醒');
            }
        });
        
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤傲白狼 普通会员 1楼

      在大数据量加载时,我们可能会遇到表格加载速度慢的问题。以下是一些可能的优化方法:

      1. 分批加载数据:如果表格的数据量非常大,一次加载全部数据可能会导致加载速度慢。你可以考虑将数据分批加载,每次加载一部分数据,然后一次性加载完。

      2. 使用分页:如果你的表格的数据量很大,一次性加载全部数据可能会导致加载速度慢。你可以考虑使用分页加载数据,这样每次只加载一部分数据,而不是全部数据。

      3. 使用内存优化技术:你可以使用一些内存优化技术来提高表格的加载速度。例如,你可以使用内存缓存来存储频繁使用的数据,这样在下次加载数据时,可以直接从缓存中获取,而不是从数据库中获取。

      4. 使用索引:如果你的表格的数据量很大,但是数据库中没有合适的索引,那么查询效率可能会很低。你可以考虑为你的表格创建索引,这样可以大大提高查询效率。

      5. 使用分库分表:如果你的表格的数据量很大,但是数据库的规模非常大,那么查询效率可能会很低。你可以考虑使用分库分表的方法,将大的表格分散到多个数据库中,这样可以提高查询效率。

      6. 使用数据压缩:如果你的表格的数据量很大,但是数据库的规模非常大,那么查询效率可能会很低。你可以考虑使用数据压缩的方法,将大的表格压缩到更小的大小,这样可以减少查询的次数。

      以上只是一些可能的优化方法,具体的优化方法还需要根据你的实际情况来决定。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部