Я проверил много форумов и других вопросов, связанных с этой проблемой, но ни один не помог. Я пишу .net MVC приложение, которое использует платформу Entity. Для одного из действий контроллера я загружаю данные из хранимой процедуры, которая является просто оператором select и возвращает 50k + строк. На стороне сервера SQL производительность хорошая. Для извлечения строк требуется всего 3 секунды, но настоящая проблема возникает, когда страница загружается. Я использую jQuery datatable из Datatables.net, чтобы показать данные.
Как я уже заметил, страница сначала загружает все строки, поэтому сначала я получаю бесконечную прокрутку, затем она применяет нумерацию страниц, которая идет с данными.
Это займет вечность, чтобы загрузить его. Я пробовал обработку на стороне сервера, как это упоминается на сайте, я пробовал отложенный рендеринг, как упомянуто здесь https://www.datatables.net/examples/ajax/defer_render.html.
никто не работал.
Код моего контроллера:
private DB_Entities db = new DB_Entities();
public ActionResult Staff()
{
var DetailsData = new DataViewModel { IDDetails = db.Get_IDDetails().ToList<Get_IDDetails_Result>(), Name = "Staff" };
return View(DetailsData );
}
Код JS стола-погрузчика:
$(document).ready(function () {
/*used to change default show entry value to 25*/
$('#ex').dataTable({
"processing": true,
"serverSide": true,
"deferLoading": 25
});
});
CSHTML-код:
<tbody>
@foreach (var item in Model.IDDetails)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.employeeName)
</td>
<td>
@Html.DisplayFor(modelItem => item.EID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Accountid)
</td>
</tr>
}
</tbody>
Любая идея, как я могу оптимизировать эти многочисленные строки или загрузить их лучше или любым другим способом, чтобы оптимизировать его ??