Witam,
Jestem w trakcie pisania aplikacji webowej (praca inżynierska), potrzebuję jednak małej porady, najpewniej dotyczącej frontendu (może trochę też backend).
W dużym skrócie aplikacja pisana jest w Javie (Spring MVC, Security, Hibernate), baza mysql, frontend obecnie jest w JSP+CSS+JS.
Problem opiszę na przykładzie zwykłego wyświetlania listy użytkowników:
Obecnie: wchodzę na jakąkolwiek stronkę np. z listą userów (kontroler przy pomocy DAO wrzuca listę userów do jsp). Fajnie, ale gdy chcę edytować wybranego usera/dodać nowego, to obecnie przez POST uruchamiam kontroler otwierający kolejną stronę z formatką (przesyłam id usera). Generalnie natworzenie sporej ilości różnych formularzy (poza rolami mam funkcje, firmy, dynamiczne menu pobierane z bazy, w przyszłości na podstawie ról wczytywanie/wyswietlanie danych z xls, xlsx) - każdy formularz powoduje przeładowanie całej strony, łączenie się z bazą - jak na początek cieszę się, że działa, ale jednak chciałbym to trochę zoptymalizować.
Wczoraj pomyślałem o takim rozwiązaniu:
Stronkę poprzez jsp:include dzielę na kawałki, przeładowuję tylko div'y (np. div z listą userów) - czyli unikam już pobierania niektórych danych z bazy (np. dynamiczne menu); niektóre strony w ten sposób scaliłbym i wyświetlił tylko ukryte div'y z formularzami (np. dodawanie usera - robię wyskakujące okienko zamiast kontrolera z 'get'em).
W podobny sposób obsłużyłbym edycję usera bez dodatkowego łączenia się z bazą - na stronę ładuję trochę więcej danych (+ modeli w kontrolerze) i w miarę potrzeb 'odkrywam/ukrywam' CSS'em/JS'em).
I tu pojawia się pytanie, czy to jest w miarę rozsądne rozwiązanie, czy może lepiej użyć jakiś framework oparty o JS, który działałby jako nakładka na jsp?