Моя проблема в том, что моя таблица данных jquery открывается очень медленно. Мой сценарий следующий. У меня есть экран фильтрации, и после выполнения необходимой фильтрации моя страница результатов открывается с кнопкой «Просмотреть результаты». С помощью этой кнопки я получаю нужные данные, отправляя тег . Моя таблица состоит из 87 столбцов и 1207 данных. К сожалению, для этих значений время открытия в общей сложности составляет 15-16 секунд. Я хотел выполнить разбиение на страницы на стороне сервера, но тип возвращаемого значения моего метода на стороне ядра .net — return View("Result", result). Если я поделюсь своими кодами, то буду очень рад, если опытные друзья ответят мне о том, какие изменения я могу внести. Приятного форума
public IActionResult FastFiltering (модель FastFilteringRequest) { пытаться { var fastFilteringParameters = _mapper.Map(модель); List результат = новый List(); результат = _fundService.FastFiltering(fastFilteringParameters, userId).ToList(); foreach (в результате фонд var) { fund.FundValue.DailyReturn =fund.FundValue.DailyReturn.Value < 1 &&fund.FundValue.DailyReturn > -1 ? GetFirstDigitNonZeroDecimal((decimal)fund.FundValue.DailyReturn): decimal.Parse(fund.FundValue.DailyReturn.Value.ToString("0.00")); fund.FundValue.WeeklyReturn =fund.FundValue.WeeklyReturn.Value < 1 && } int pageSize = 0; var draw = Convert.ToInt32(Request.Form["draw"].FirstOrDefault() ?? "0");, var start = Request.Form["start"].FirstOrDefault() ?? «0»; var length = Request.Form["length"].FirstOrDefault() ?? «10»; var sortColumn = Request.Form["columns[" + Request.Form["order[0][column]"].FirstOrDefault() + "][name]"].FirstOrDefault(); var sortColumnDir = Request.Form["order[0][dir]"].FirstOrDefault(); var searchValue = Request.Form["search[value]"].FirstOrDefault(); pageSize = длина! = ноль? Convert.ToInt32(длина): 0; int пропустить = начать! = ноль? Convert.ToInt32(начало): 0; var data = (из resultPagingData в результате выберите resultPagingData); if(!string.IsNullOrEmpty(sortColumn) && !string.IsNullOrEmpty(sortColumnDir)) { данные = data.AsQueryable().OrderBy(sortColumn + "" + sortColumnDir); } int totalRecord = data.Count(); var cData = data.Skip(skip).Take(pageSize).ToList(); настройки var = новые настройки JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Игнорировать }; вар jsonData = JsonConvert.SerializeObject(новый { рисовать = рисовать, RecordFiltered = TotalRecord, RecordTotal = TotalRecord, данные = cData }, настройки); return Content(jsonData, "application/json"); } поймать (Исключение ex) { бросить бывшего; } } это мой код C#
var codeListTable = $('#' + tableId).DataTable({ состояниеSave: правда, «обработка»: правда, «serverSide»: правда, данные: jsonData, "аякс": { "тип": "ПОСТ", "url": '/Fund/FastFiltering', «тип данных»: «json», «данные»: функция (d) { d.customData = "Выбрать версию"; // İstekle sunucuya özel veri göndermek istiyorsanız kullanabilirsiniz } }, colReorder: { фиксированныйColumnsLeft: 4, фиксированныйColumnsRight: 1, }, фиксированные столбцы: { осталось: 1 }, stateSaveCallback: функция (настройки, данные) { $("#" + tableId).parent().addClass("полоса прокрутки-пользовательская"); searchSetValue (codeListTable); вар columnsOrder = codeListTable.colReorder.order(); data.ColReorder = columnsOrder; вар columnsOrderData = data.ColReorder; вар columnsFilter = codeListTable.columns().visible(); var colVisState = $.map(columnFilter, function (col, i) { вернуть столбец? правда: ложь; }); вар newColVisState = []; for (var я = 0; я
Мобильная версия