медленная загрузка дерева запросов jquery - PullRequest
0 голосов
/ 15 августа 2011

У меня есть 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 голосов
/ 15 августа 2011

Звучит / похоже, что рассматриваемая страница загружает всю структуру при начальной загрузке.Это то, что делает флаг «prerendered».Поскольку ваш список очень большой (x узлов + 400 элементов на узел), вы сталкиваетесь с серьезными проблемами производительности на стороне клиента, особенно в старых браузерах IE, которые очень плохо работают с операциями JS.

It могло бы быть лучше, если бы вы загружали каждое подменю динамически, а не предварительно отображали его.Единственная проблема заключается в том, что по мере роста DOM он будет постепенно замедляться.

Не могли бы вы предоставить пример глубины объектов, которые вы пытаетесь визуализировать, а также количество параметров каждого из них?Не нужны РЕАЛЬНЫЕ данные, просто считается.Т.е. уровень 1 узла имеет 5 параметров, и на уровне 1 может быть до 500 узлов;Уровень узла 2 имеет 12 параметров, и на уровне 2 может быть 400 узлов и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...