微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET Razor Pages 加载大量数据,性能更好?

如何解决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 举报,一经查实,本站将立刻删除。