我正在用大量数据填充剃须刀表,但是加载需要10分钟以上。
我认为我使用了很多逻辑,并且我知道这不是实现此目的的最佳方法,但这是我所学的,就像剃刀一样。
名称包含大约800个项目,联系人700,URL 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>