剃须刀台加载非常慢

时间:2019-07-11 17:30:48

标签: c# jquery razor mvvm

我正在用大量数据填充剃须刀表,但是加载需要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>

0 个答案:

没有答案