慢jquery treeview加载

时间:2011-08-15 13:49:40

标签: jquery asp.net-mvc-3 treeview

我有一个jquery treeview,我从http://jquery.bassistance.de/treeview/demo/

抓取

当节点和子节点的数量很小时,加载树没有问题,但随着内容的增长,加载需要花费很长时间,几乎到了使用树视图似乎是一个坏主意。

这是我构建树视图的视图的一部分

<script type="text/javascript">

    $(function () {
        $("#Ul1").treeview({

            collapsed: true,
            prerendered: true

        });


    });

</script>

<ul id="Ul1" class="treeview-black">
<%
    foreach (var t in (IEnumerable<itemSpecifications>)ViewData["items"])
{%>

    <li class="expandable"><span><%=Html.RouteLink(t.itemName, null, new { controller = "RQA", action = "itemaction", policyname = t.itemName})%></span>
     <%if (t.itemCount > 0)
       {%>

                <%for(int i=0;i<t.itemCount ;i++){%>
                                                     <ul>
                                                                <li class="expandable"><span><%=Html.RouteLink(t.subitems[i].Name, null, new { controller = "controller1", action = "itemUpdate", rule = t.subitems[i] })%></span></li>


                                                  </ul> 
                                                <%}%>


      <%}%>

<% }%>
</li>

</ul>

,控制器包含以下代码:

public ActionResult Index()
    {     

            items1 = (from itemsInfo itemInfo in _itemInfoCollection
                         where itemInfo.Name == "val1"  
                         select new itemSpecifications
                         {
                             itemName = itemInfo.Name,
                          itemCount = GetItemscount(),                                 subitems = GetSubItems()                             });

              ViewData["items"] = items1 ;
               return View();
    }

有时整个页面的加载需要很长时间,以致页面基本崩溃(无法加载),有时当页面加载成功时,我点击节点旁边的任何加号,这需要很长时间才能打开子项目。值得一提的是,平均子节点有400个项目,任何建议都会受到高度赞赏,我使用MVC3并且它在IE中

由于

1 个答案:

答案 0 :(得分:0)

听起来/看起来有问题的页面是在初始加载时加载整个结构。这就是“预渲染”旗帜的作用。因为您的列表非常大(x节点+每个节点400个项目),所以您正在考虑重要的客户端性能问题,尤其是在较旧的IE浏览器中,这些浏览器在JS操作中表现非常糟糕。

如果您动态加载每个子菜单而不是预渲染它,可能会更好。唯一的问题是随着DOM的增长,它最终会变慢。

您能否提供您尝试渲染的对象深度的示例,以及每个对象的参数数量?不需要REAL数据,只需计数。即节点级别1有5个参数,级别1上可以有多达500个节点;节点级别2有12个参数,级别2上可以有400个节点,等等。