Member 14662237 Ответов: 1

Как получить большой объем данных в объект DataTable в ASP.NET в MVC


Как получить большой объем данных в datatable in asp.net mvc. приведенный ниже код работает, но мне нужно показать данные 1lac в datatable. как я могу получить это без проблем с таймаутом и быстро получить данные?Пожалуйста помогите мне

Что я уже пробовал:

код страницы контроллера:

public ActionResult GetData()
     {
         string Constr = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
         var source = new List<mng_industrymodel>();
         using (OdbcConnection conn = new OdbcConnection(Constr))
         {
             using (OdbcCommand cmd = new OdbcCommand("call pegasus_industry_select"))
             {
                 cmd.Connection = conn;
                 conn.Open();
                 cmd.CommandType = CommandType.StoredProcedure;
                 var dr = cmd.ExecuteReader();
                 while (dr.Read())
                 {
                     var orderlists = new mng_industrymodel
                     {
                         industry_Id = dr[0].ToString(),
                         industry_name = dr[1].ToString(),
                         industry_status = dr[2].ToString()
                     };
                     source.Add(orderlists);
                 }
                 return Json(new { data = source }, JsonRequestBehavior.AllowGet);
             }
         }

     }


Просмотр кода страницы:



$(document).ready(function () {
    $('#tbltable').DataTable({
        "ajax": {
            "url": "/Management/GetData",
            "type": "GET",
            "datatype": "json"
        },
        "columns": [
            { "data": "industry_Id" },
            { "data": "industry_name" },
            { "data": "industry_status" },
            {
                "data": "industry_Id", "render": function (data) {

                    return "<a href='/Management/Edit/" + data + "' class='badge badge-success mb-1'><i class='far fa-edit p-1'></i> Edit</a><a href='' class='badge badge-danger' style='margin-left:5px' onclick=Delete('" + data + "')><i class='far fa-trash-alt p-1'></i> Delete</a>";
                },
                "orderable": false,
                "searchable": false,
                "width": "150px"

            }

        ]
    });
});

Richard MacCutchan

Сколько времени вам потребуется, чтобы пролистать 100 000 элементов в поисках того, что вас интересует?

1 Ответов

Рейтинг:
11

OriginalGriff

Ваша проблема не в том, чтобы получить данные, это легко - это отображение, которое требует времени и огромных объемов. И вы не можете "обойти" или "исправить" это: если вы пытаетесь бросить большой объем данных на пользователя, вы получаете большой объем HTML, и это занимает много пропускной способности, много времени передачи и много рендеринга браузера.

Да, и разозлил пользователей, потому что сайт невероятно медленный и непригодный для использования, когда он наконец загружается.

Решение простое: не бросайте так много данных на пользователя. Самое большее, 20 или 30 элементов одновременно, с операциями подкачки, поиска и фильтрации, чтобы облегчить им работу. Бросьте 1000 элементов в пользователя, и мало того, что сайт медленный, но пользователь все равно не может найти то, что он хочет. Подумайте об этом: типичный Google возвращает несколько миллионов просмотров, но вы почти никогда не выходите за пределы первой страницы. Вместо этого вы меняете критерии поиска, чтобы информация, которую вы хотели, была ближе к вершине. Теперь представьте, что google возвращает все 2 000 000 ссылок каждый раз, когда вы искали! Мы бы все использовали Бинг вместо этого ...


Member 14662237

использование поиска ,подкачки,фильтрации сделало его проще, так ли это??????? ответьте мне

OriginalGriff

Это больше работы для вас - но это то, за что вам платят, - но это быстрее и намного, намного лучше для пользователя.