如何解决ASP.NET Razor Pages 加载大量数据,性能更好?
我正在为学校开展一个项目,我的 sql.Database 中有大约 1700 种成分。当我想加载成分页面时,它加载了 10 秒,10 秒后我可以看到数据,再过 3 秒后,DataTabels.net JQuery 正确加载了数据。有没有办法按时间从我的 sql 数据库加载数据?这样我就可以立即看到 100 种成分,而其他成分会在我在页面上时加载?
这就是我如何使用我的存储库加载数据
private readonly IIngredientsRepository _ingredientsRepository;
public IndexModel(IIngredientsRepository ingredientsRepository)
{
_ingredientsRepository = ingredientsRepository;
}
public IList<TIngredient> TIngredients { get; set; }
public async Task<IActionResult> OnGetAsync()
{
TIngredients = await _ingredientsRepository.GetAllAsync().ToListAsync();
}
代码库实现: 我的 IIngredientsRepository 正在实施以下 Repository
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class,new()
{
protected readonly ApplicationDbContext _db;
public Repository(ApplicationDbContext db)
{
_db = db;
}
public IQueryable<TEntity> GetAllAsync()
{
try
{
return _db.Set<TEntity>();
}
catch (Exception ex)
{
throw new Exception($"Couldn't retrieve entities: {ex.Message}");
}
}
<table id="dtBasicExample" class="table table-striped table-hover text-center table-sm table-bordered">
@*Tabellen Kopf*@
<thead>
<tr class="stylish-color-dark text-white">
<th class="font-weight-bold TableHeadFontSize">
Bezeichnung
</th>
<th></th>
</tr>
</thead>
@*Tabellen Daten*@
<tbody>
@foreach (var item in Model.TIngredients)
{
<tr>
<td class="TableBodyFontSize text-left pl-3">
@Html.displayFor(m => item.Name)
</td>
<td style="width:200px;">
<div class="btn-group" role="group">
<a class="btn red lighten-1 text-white btn-sm" asp-page="Delete" asp-route-Id="@item.Id" data-toggle="tooltip" data-placement="top" title="Löschen">
<i class="fas fa-trash-alt"></i>
</a>
</div>
</td>
</tr>
}
</tbody>
</table>
dataTable 脚本
<script>
$(document).ready(function () {
$('#dtBasicExample').DataTable({
"searching": false,"pageLength": 25,"language": {
"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json"
}
});
$('.dataTables_length').addClass('bs-select');
});
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。