Mam to, co myślę, że jest interesującym problemem.Czy istnieje struktura drzewa lub algorytm do pomieszania wokół poziomów w drzewie?
Zasadniczo mam listę przedmiotów, w których każda pozycja ma ustalony zestaw metadanych o różnych wartościach.
Na przykład:
- Pozycja 1: {type = "text", autor = "Użytkownik A", wydane Date = "03.03.2003"}
- Pozycja 2: {Type = "Tabela", Autor = "Użytkownik A", Data edycji = "04/05/2006"}
- Pozycja 3: {Typ = "Obraz", Autor = "Użytkownik B", Data edycji = "05/05/2005" }
- Punkt 4: {type = "text", autor = "Użytkownik B", wydane Date = "05/07/2007"}
Teraz, w obecnej postaci, ta lista elementów jest spłaszczona i przedstawiona w tabeli.
Chcielibyśmy jednak znaleźć sposób, aby umożliwić użytkownikom przeglądanie ich w drzewie, ale z dodatkową elastycznością, że mogą "przestawić" kolejność każdego tagu meta-danych pojawia się w drzewie.
Więc początkowo może wyglądać następująco:
Items
+ Table
+ User A
+ 04/05/2006
-> Item 2
-> Item 2
-> Item 2
+ Text
+ User A
+ 03/03/2003
-> Item 1
-> Item 1
+ User B
+ 05/07/2007
-> Item 4
-> Item 4
-> Item 1
-> Item 4
+ Image
..
Załóżmy jednak, że zamiast użytkownik chce przerzucić go wokół i zobaczyć wszystkie elementy związane z konkretnym użytkownikiem:
Items
+ User A
+ Text
+ Table
-> Item 1
-> Item 2
+ User B
+ Image
+ Text
-> Item 3
-> Item 4
i tak na.
Mam nadzieję, że ma to sens.
Zastanawiam się więc, czy istnieje podejście oparte na najlepszych praktykach w celu osiągnięcia tego przy niskich kosztach? Wynik każdego "flip/shuffle/pivot" jest ładnie reprezentowany w drzewie, więc oczywiście pierwsza myśl jest taka, że gdy użytkownik żąda zmiany reprezentacji, można wygenerować nowe drzewo z listy elementów, jeśli jest to wymagane. Miałem jednak nadzieję, że może być lepszy sposób, po prostu obracanie jednego drzewa itp.
Czy jest to coś, co można zrobić tanio obliczeniowo w JavaScript w przeglądarce użytkownika, jeśli backend miał po prostu wrócić płaska lista przedmiotów?
Dziękujemy & pozdrowienia rodzaju,
Jamie
Czy jest to w języku Java lub Javascript? To dwa bardzo różne języki. –
@Reverend Gonzo - Najlepiej w JavaScript, aby umożliwić przeglądarce klienta zmianę prezentacji danych bez konieczności powtarzania żądań do serwletu. Jeśli jednak byłoby to zbyt intensywne w JS, może być obsługiwane za każdym razem w Javie. – Jay
Znam kogoś, kto zaimplementował to jako sposób wyświetlania dużych zbiorów danych na urządzeniach mobilnych (jeśli dobrze rozumiem). Myślę, że jest to pewnego rodzaju javascript lib. Dwukrotnie przedstawił go w naszej lokalnej grupie języków dynamicznych. jeśli jesteś zainteresowany e-mailem na adres [email protected] i prawdopodobnie mogę cię połączyć. –