c# - Razor 表加载速度极慢
问题描述
我正在用大量数据填充剃刀表,但加载时间超过 10 分钟。
在我看来,我使用了很多逻辑,我知道这不是最好的方法,但这就是我想出的,因为我是剃须刀的新手。
名称包含大约 800 个项目,联系人 700,网址 3600,服务器 1200
我不认为这很多,但我制作表格的方式是我假设阻止应用程序,因为我在其他列表中多次遍历这些列表。
我已将 DataTables 应用于此表,我认为这会有所帮助,因为限制屏幕上显示的行应该意味着不会遍历整个列表?除非数据表仍然加载整个表并只显示 25。有没有办法最初只加载 100 个结果,然后随着时间的推移慢慢加载其余的结果?
创建此表时阻止我的应用程序挂起的最佳方法是什么
<table class="table table-responsive" id="result" data-page-length='25'>
<thead>
<tr>
<th>Application</th>
<th>Ministry</th>
<th>Contacts</th>
<th>Server</th>
<th>URL</th>
</tr>
</thead>
<tbody>
@foreach(var l in Model.names)
{
<tr>
<td style="width: 27%">
@Html.DisplayFor(modelItem => l.appName)
</td>
<td style="width:20%">
@Html.DisplayFor(modelItem => l.ministry)
</td>
<td style="width:20%">
@foreach (var k in Model.contacts)
{
if(k.appName == l.appName){@Html.Raw(k.contactName + " - " + k.contactRole + "<br>")}
}
</td>
<td colspan="2">
<table>
@foreach(var s in Model.servers)
{
<tr >
@if(s.appName == l.appName)
{
<td>
<p class="big">
@Html.Raw(s.server)
</p>
</td>
}
<td>
@foreach(var u in Model.filteredURls)
{
@if(u.appName == l.appName && u.server == s.server){@Html.Raw(u.url + "<br>")}
}
</td>
</tr>
}
</table>
</td>
</tr>
}
</tbody>
</table>
</div>
<script type="text/javascript" >
jQuery(document).ready(function () {
jQuery('#result').DataTable();
});
</script>
解决方案
推荐阅读
- swift - Xcode Swift 包管理器
- django - 无法在虚拟环境中安装 Psycopg2
- javascript - 如何配置 webpack-dev-server 在重新加载之前关闭浏览器上的“beforeunload”事件?
- postgresql - 在 repmgr 中分配虚拟 IP
- sql - Bigquery View 没有进行分区修剪
- javascript - 如何使用 mocha/chai 测试 ejs/nodejs 功能?
- gitlab-ci - 为什么gitlab ci不执行规则?
- r - 使用 ggplot 绘制纵向数据的总体趋势
- mysql - 在 SQL 中混合排序规则的正确配置?
- python - 在 manim 中异步运行不同的动画