![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam w bazie danych zapisane kategorie gdzie tabela ta posiada między innymi takie nagłówki jak idCategories,idParent,name itp. Potrzebuję wyciągnąć wszystkie kategorie wraz z ich potomkami niezależnie od stopnia zagnieżdzenia aby potem móc zrobić sobie menu np. takie http://jquery.bassistance.de/treeview/demo/?1 czyli wszystkie elementy pociągnięte od razu a nie w trakcie kliknięcia na danego potomka. Wiec konstrukcje <ul> z zagłębieniami W tabeli kategorii jest około 1400 kategorii na chwilę obecną około 14 pierwszego poziomu czyli z idparent = 0, 165 drugiego i jakieś 1300 trzeciego poziomu. Elementy pobieram rekurencyjnie ale to nie jest za bardzo problemem a ilość pętli jaka musi być wykonana i jest ich w sumie w chwili obecnej około 240 000, czas wykonywania tej operacji to około 0,4 sekundy i tak nie mam za bardzo pomysłu co tu można jeszcze poprawić
Jakby ktoś miał jakis pomysł jak to zoptymalizować to byłbym wdzięczny. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A stworzyłeś klucze tak jak mówiłem?
Pozostaje Ci cache jak nic innego nie chcesz robić. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
A stworzyłeś klucze tak jak mówiłem? No pewnie ale tak jak napisałem za dużo zapytań by było. Można trochę udoskonalić kod, wywalić foreach czy wyciągnąć count przed pętle - to tak na pierwszy rzut oka. Może tutaj znajdziesz coś co pomoże. No a co mi da wywalenie pętli jak ja jej potrzebuję. Count jest odpalany raz na początku pętli a nie za każdą iteracją. Natomiast zastosowanie tylko jednego count-a i przypisanie go do właściwości klasy aby uniknąć ponownego odpalania w rekurencji nie poprawiło efektywności. Zerknę jeszcze na link który zapodałeś |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 17:39 |