簡體   English   中英

如何管理大數據的數據表

[英]How to manage datatable for large data

我有一份報告數據表。 當我嘗試顯示數據時,我的瀏覽器凍結或崩潰。 我的js代碼在下面

Reporting_Report.DTReport = $('#Report-ReportTable').DataTable({
    "ajax": {
        "url": "/Ajax/JsonProvider?Method=HardwareHostScreenUsage&GenericObject=true&Json=" + JSON.stringify(json),
        "dataSrc": ""
    },
    "columns": [
        {
            "data": "BranchName",
            "sTitle": "BranchName"
        },
        {
            "data": "HardwareHostFriendlyName",
            "sTitle": "Hardware Host Friendly Name"
        },
        {
            "data": "HardwareHostScreenUsageScreenState",
            "defaultContent": "N/A",
            "sTitle": "Hardware Host Screen Name"
            "render": function(data, type, full) {
                if (data && Util.Check.IsInteger(data)) {
                    if (data == 1) {
                        return "Sorry Screen";
                    } else if (data == 2) {
                        return "Welcome Screen";
                    } else if (data == 3) {
                        return "Progress Screen";
                    }
                }
            }
        },
        {
            "data": "HardwareHostScreenUsageSecondOnScreen",
            "sTitle": "Elapsed Time On Hardware Host Screen"
        },
        {
            "data": "HardwareHostScreenUsageRecordDate",
            "sTitle": "Hardware Host Screen Usage Record Date"
            "render": function (data, type, full) {
                return Util.JsonDateToDate(data).format("dd.mm.yyyy HH:MM:ss");
            }
        }
    ],
    "pageLength": 20,
    "lengthMenu": [
        [20, 50, 100, -1],
        [20, 50, 100, "All"]
    ],
    "info": false,
    bFilter: true,
    bInfo: false,
    "order": [[0, "asc"]],
    "scrollX": true,
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'copy'
        },
        {
            extend: 'csv'
        },
        {
            extend: 'excel'
        },
        {
            extend: 'pdf',
            title: "Detailed Ticket Report"
            message: startDate + " " + startTime + " - " + endDate + " " + endTime + "\t" + datetime,
            pageSize: 'LEGAL'
        },
        {
            extend: 'print'
        }
    ]
});

我有超過100.000個數據。

我以為也許我可以顯示頁面數據和總數據號(用於管理頁面號),然后單擊另一個頁面號即可發送新查詢並獲取新數據。 但是我找不到解決方法(可能會引起其他問題(短路,搜索或其他))。

您有任何想法和解決方案嗎(或者這個問題已經解決了)

腳注:json有一些用於查詢的過濾器(時間,分支等)

HardwareHostScreenUsage方法在c#端獲取我的數據。

您還可以使用客戶端數據源-

var mydata = [];
$('#example').DataTable({
    data:           data,
    deferRender:    true,
    scrollY:        200,
    scrollCollapse: true,
    scroller:       true
});

一次從服務器獲取所有數據,並在滾動表時顯示它們。

您需要這些庫-

https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js https://cdn.datatables.net/scroller/1.4.3/js/dataTables.scroller.min.js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM